之前用过很多次 后来折腾了好久 这次记录下来
1 下载phpexcel 在这里直接下
https://github.com/PHPOffice/PHPExcel
2 下载后 解压
在thinkphp的vendor目录新建文件夹 phpexcel 然后把解压后的classes里面的文件 拷贝到phpexcel里面
效果如图

3 如果使用
封装了一个导出函数
/**
* 直接导出需要生产的内容
* @param $field
* @param $list
* @param string $title
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Writer_Exception
*/
public function phpExcelList($field, $list, $filename='文件')
{
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new \PHPExcel();
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
foreach ($list as $key => $value) {
foreach ($field as $k => $v) {
if ($key == 0) {
$objPHPExcel->getActiveSheet()->setCellValue($k . '1', $v[1]);
}
$i = $key + 2; //表格是从2开始的
$objPHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]);
}
}
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='.$filename.'.xls');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
}
4 怎样调用
//导出
public function Output()
{
$data=array(
0=>array('id'=>1,'serial_number'=>'123','batch'=>'1'),
1=>array('id'=>2,'serial_number'=>'124','batch'=>'2'),
2=>array('id'=>3,'serial_number'=>'125','batch'=>'3'),
);
$filename='序列号';
$field = array(
'A' => array('id', '序号'),
'B' => array('serial_number', '序列号'),
'C' => array('batch', '批次'),
);
//$this->downloadExcel($data,$title,$filename);
$this->phpExcelList($field,$data,$filename);
}
如果想继续追加 那么$field请C后面写D 这样 这个是excel里面的列明 $data里面的数据类似
5 效果如图

来源:https://www.cnblogs.com/baker95935/p/12484230.html