在相识php是怎样导出excel表格之前先相识一下excel的实质。
excel分为两大版本excel2007(后缀.xlsx)、excel2003(后缀.xls),excel2007实质是xml的一个鸠合文档(紧缩文档),excel2007文档的构成就是xml的鸠合紧缩文档。excel2003:实质是一个二进制文件。
相识了excel,就下来引见引见php导出excel的道理:
关于excel2007来讲,因为其实质为xml的鸠合文档,所以导出历程就是剖析xml的历程;关于excel2003来讲,因为其实质是二进制文件,所以,导出excel的历程起首会翻开二进制文件,然后读取内部信息,并把内部信息转化为能够辨认的内容的历程。
两种导出体式格局:
体式格局一:运用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');
体式格局二:简朴的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);
以上内容仅供参考!
想相识更多相干内容请接见ki4网:PHP视频教程
以上就是php导出excel表格的道理的细致内容,更多请关注ki4网别的相干文章!