PHP로 EXCEL을 읽는 데 일반적으로 사용되는 세 가지 방법이 있으며 각각 고유한 장점과 단점이 있습니다. 저는 개인적으로 세 번째 방법을 여러 플랫폼에서 사용할 수 있기 때문에 추천합니다.
1..csv 형식으로 읽기
.xls를 .csv 텍스트 형식으로 변환한 다음 PHP를 사용하여 파일을 분석하는데 이는 PHP가 텍스트를 분석하는 것과 다르지 않습니다.
장점: 크로스 플랫폼, 상대적으로 높은 효율성, 읽고 쓸 수 있습니다.
단점: .csv 파일만 직접 사용할 수 있습니다. .xls 바이너리 파일을 자주 사용하는 경우 수동으로 변환해야 하며 자동화할 수 없습니다. 파일에는 SHEET이 하나만 있습니다.
PHP에는 자체적인 analyze.csv 기능인 fgetcsv가 있습니다
배열 fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
fopen(), popen() 또는 fsockopen()에 의해 생성된 유효한 파일 포인터입니다.
length(선택 사항)는 CVS 파일의 가장 긴 줄보다 커야 합니다. 이 매개변수는 PHP 5에서는 선택사항입니다. 이 매개변수를 생략하면(PHP 5.0.4 이상 버전에서는 0으로 설정) 길이에 제한은 없으나 실행 효율성에 영향을 줄 수 있습니다.
delimiter(선택 사항)는 필드 구분 기호(한 문자만 허용됨)를 설정하며 기본값은 쉼표입니다.
엔클로저(선택 사항)는 필드 둘러싸기 문자(한 문자만 허용됨)를 설정하며 기본값은 큰따옴표입니다. 이 매개변수는 PHP 4.3.0에 추가되었습니다. fgets() 와 유사하지만, fgetcsv()는 읽기 행을 구문 분석하고 CSV 형식의 필드를 찾아 해당 필드가 포함된 배열을 반환한다는 점만 다릅니다.
fgetcsv()는 파일의 끝을 발견할 때를 포함하여 오류가 발생하면 FALSE를 반환합니다.
참고: CSV 파일의 빈 줄은 단일 null 필드를 포함하는 배열로 반환되며 오류로 처리되지 않습니다.
물론 문자열을 직접 수동으로 분석할 수도 있습니다.
예:
<?php $row = 1; echo "<pre class="brush:php;toolbar:false"><table border=1>"; $handle = fopen("three.csv","r"); while ($data = fgetcsv($handle, 1000, ",")) { $num = count($data); $row++; echo "<tr align=center>"; for ($c=0; $c < $num; $c++) { echo "<td>".$data[$c]."</td>"; } echo "</tr>"; } echo "</table>"; fclose($handle); ?>
fputcsv 함수를 사용하여 행의 형식을 CSV로 지정하고 파일 포인터를 쓸 수도 있습니다.
2. ODBC 연결 데이터소스
장점: cvs, xls 등 다양한 형식을 지원합니다. 읽기 및 쓰기를 지원하고 표준 SQL 언어를 사용하며 SQLSERVER 및 MYSQL 데이터베이스와 거의 동일합니다.
단점: Windows 서버만 지원
3. PHP 커스텀 클래스(파일이 좀 커서 다음 장에 넣습니다)
장점: 크로스 플랫폼. 일부 클래스는 쓰기 작업을 지원합니다. .xls 바이너리 지원
test.php
$data->setOutputEncoding('CP1251'); 수정
은 $data->setOutputEncoding('CP936')입니다.
중국어 간체는 cp936, 중국어 번체는 CP950, 일본어는 CP932 등으로 수정할 수 있습니다.
$data->read('3.xls')를 자신만의 Excel 파일 이름으로 수정하세요.
위 내용은 관련 내용을 포함하여 EXCEL을 PHP로 읽는 방법을 소개하고 있으니, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.