Heim > Artikel > Backend-Entwicklung > Das Prinzip des PHP-Exports einer Excel-Tabelle
Bevor wir verstehen, wie PHP Excel-Tabellen exportiert, wollen wir zunächst die Essenz von Excel verstehen .
Excel ist in zwei Hauptversionen unterteilt: Excel2007 (Suffix. Komprimieren Sie das Dokument. Excel2003: im Wesentlichen eine Binärdatei.
Da ich nun Excel verstehe, möchte ich das Prinzip des Excel-Exports aus PHP vorstellen:
Für Excel 2007, da es sich im Wesentlichen um ein XML-Sammlungsdokument handelt, den Exportprozess Da es sich bei Excel 2003 um eine Binärdatei handelt, wird beim Exportieren von Excel zunächst die Binärdatei geöffnet, dann die internen Informationen gelesen und in identifizierbare Inhalte umgewandelt.
Zwei Exportmethoden:
Methode 1: PHPExcel-Klassenbibliothek verwenden
//引入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');
Methode 2: Einfaches PHP exportiert Excel und gilt nicht für externe Klassenbibliotheksdateien
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);
Der obige Inhalt dient nur als Referenz!
Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonDas Prinzip des PHP-Exports einer Excel-Tabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!