PHP が Excel テーブルをエクスポートする方法を理解する前に、まず Excel の本質を理解しましょう。
excel は、excel2007 (拡張子。ドキュメントを圧縮します。 Excel2003: 本質的にはバイナリ ファイルです。
Excel を理解した後、PHP から Excel をエクスポートする原理を紹介します。
Excel2007 の場合、その本質は XML の集合ドキュメントであるため、エクスポート プロセスはXML の解析プロセス; Excel2003 の場合、その本質はバイナリ ファイルであるため、Excel のエクスポート プロセスは、まずバイナリ ファイルを開いてから、内部情報を読み取り、内部情報を識別可能なコンテンツに変換します。
2 つのエクスポート メソッド:
方法 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 中国語 Web サイトにアクセスしてください: PHP ビデオ チュートリアル
以上がPHPがExcelテーブルをエクスポートする原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。