PHP가 Excel 테이블을 내보내는 방법을 이해하기 전에 먼저 Excel의 본질을 이해하세요.
Excel은 Excel2007(접미사 . excel2003: 본질적으로 바이너리 파일입니다.
이제 Excel을 이해했으므로 PHP에서 Excel을 내보내는 원리를 소개하겠습니다.
excel2007의 경우 본질은 xml의 수집 문서이므로 내보내기 프로세스는 excel2003의 경우 xml을 구문 분석하는 프로세스입니다. 본질적으로 바이너리 파일이므로 Excel을 내보내는 프로세스에서는 먼저 바이너리 파일을 연 다음 내부 정보를 읽고 내부 정보를 식별 가능한 콘텐츠로 변환합니다.
두 가지 내보내기 방법:
방법 1: PHPExcel 클래스 라이브러리 사용
//引入PHPExcel库文件(路径根据自己情况) include './phpexcel/Classes/PHPExcel.php'; $excel = new PHPExcel(); //创建对象 $letter = array('A','B','C','D','E','F','F','G'); //Excel表格式,这里简略写了8列 $tableheader = array('学号','姓名','性别','年龄','班级');//表头数组 //填充表头信息 for($i = 0;$i < count($tableheader);$i++) { $excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]"); } $data = array( array('1','小王','男','20','100'), array('2','小李','男','20','101'), array('3','小张','女','20','102'), array('4','小赵','女','20','103') ); //填充表格信息 for ($i = 2;$i <= count($data) + 1;$i++) { $j = 0; foreach ($data[$i - 2] as $key=>$value) { $excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value"); $j++; } } $write = new PHPExcel_Writer_Excel5($excel); header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-execl"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download");; header('Content-Disposition:attachment;filename="testdata.xls"'); header("Content-Transfer-Encoding:binary"); $write->save('php://output');
방법 2: 간단한 PHP 내보내기 Excel, 외부 클래스 라이브러리 파일은 적용할 수 없습니다
header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=reply.csv"); header("Pragma: no-cache"); header("Expires: 0"); $output = fopen("php://output", "w"); $header = array('学号','姓名','性别','年龄','班级'); $converter = function($value) { return iconv('utf-8', 'gbk', $value); }; $header = array_map($converter, $header); $list = array( array('1','小王','男','20','100'), array('2','小李','男','20','101'), array('3','小张','女','20','102'), array('4','小赵','女','20','103') ); fputcsv($output, $header); foreach($list as $k => $v) { $csvrow = array_map($converter, array( $v[0], $v[1], $v[2], $v[3], $v[4], )); fputcsv($output, $csvrow); } fclose($output);
위 내용은 참고용입니다!
더 많은 관련 콘텐츠를 알고 싶다면 PHP 중국어 웹사이트를 방문하세요: PHP 비디오 튜토리얼
위 내용은 PHP에서 Excel 테이블을 내보내는 원리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!