Heim  >  Artikel  >  Backend-Entwicklung  >  Das Prinzip des PHP-Exports einer Excel-Tabelle

Das Prinzip des PHP-Exports einer Excel-Tabelle

王林
王林Original
2019-09-06 14:11:104085Durchsuche

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(&#39;1&#39;,&#39;小王&#39;,&#39;男&#39;,&#39;20&#39;,&#39;100&#39;),
array(&#39;2&#39;,&#39;小李&#39;,&#39;男&#39;,&#39;20&#39;,&#39;101&#39;),
array(&#39;3&#39;,&#39;小张&#39;,&#39;女&#39;,&#39;20&#39;,&#39;102&#39;),
array(&#39;4&#39;,&#39;小赵&#39;,&#39;女&#39;,&#39;20&#39;,&#39;103&#39;)
);
//填充表格信息
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(&#39;Content-Disposition:attachment;filename="testdata.xls"&#39;);
header("Content-Transfer-Encoding:binary");
$write->save(&#39;php://output&#39;);

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(&#39;学号&#39;,&#39;姓名&#39;,&#39;性别&#39;,&#39;年龄&#39;,&#39;班级&#39;);
$converter = function($value) {
return iconv(&#39;utf-8&#39;, &#39;gbk&#39;, $value);
};
$header = array_map($converter, $header);
$list = array(
array(&#39;1&#39;,&#39;小王&#39;,&#39;男&#39;,&#39;20&#39;,&#39;100&#39;),
array(&#39;2&#39;,&#39;小李&#39;,&#39;男&#39;,&#39;20&#39;,&#39;101&#39;),
array(&#39;3&#39;,&#39;小张&#39;,&#39;女&#39;,&#39;20&#39;,&#39;102&#39;),
array(&#39;4&#39;,&#39;小赵&#39;,&#39;女&#39;,&#39;20&#39;,&#39;103&#39;)
);
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn