数据格式
//获取数据格式
$arr = ['title' => 'A', 'content' => 'B'];
$field = ['title' => '名称', 'content' => '内容'];
//查出数据 格式例:
$data = [
['title' => 'biao1', 'content' => 'neirong1'],
['title' => 'biao1', 'content' => 'neirong1'],
];
if ($data) {
//$data = collection($data)->toArray(); //是否需要看配置
array_unshift($data, $field);
$this->exportExcel($filename, $data, $arr);
}
方法
# $filename 文件名
# $data 插入数据包括 标题名称(列名)
# $arr [字段 => 列序列]
public function exportExcel($filename, $data, $arr) {
//初始化PHPExcel()
Vendor('PHPExcel.PHPExcel.IOFactory');
$objPHPExcel = new \PHPExcel();
//清除缓冲区,避免乱码
ob_end_clean();
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');
$objPHPExcel->setActiveSheetIndex(0);
foreach ($data as $rk => $row) {
foreach ($row as $ik => $item) {
$objPHPExcel->getActiveSheet()->setCellValue($arr[$ik] . ($rk + 1), $row[$ik]);
}
}
//设置保存版本格式
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}