phpoffice/phpspreadsheet导出数据
public function excelExport($filename, $header, $data, $excelName , $format = 'Xls') {// $format只能为 Xlsx 或 Xls
$newExcel = new Spreadsheet(); //创建一个新的excel文档
$objSheet = $newExcel->getActiveSheet(); //获取当前操作sheet的对象
$objSheet->setTitle($excelName); //设置当前sheet的标题
//设置第一栏的标题
$key = ord("A"); // 设置表头
foreach ($header as $v) {
$colum = chr($key);
$objSheet->setCellValue($colum . '1', $v);
$key += 1;
}
//设置数据
$headkeys = array_keys($header);
$column = 2;
foreach ($data as $key => $rows) {// 行写入
$span = ord("A");
foreach ($headkeys as $k => $v) { // 列写入
$value = isset($rows[$v]) ? $rows[$v] : '';
if (strlen($value) > 9) {
$value .= ' ';
}
$objSheet->setCellValue(chr($span) . $column, $value);
$span++;
}
$column++;
}
ob_end_clean() ;
if ($format == 'Xlsx') {
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
} elseif ($format == 'Xls') {
header('Content-Type: application/vnd.ms-excel');
}
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=". $filename . time() . '.' . strtolower($format));
header('Cache-Control: max-age=0');
$objWriter = IOFactory::createWriter($newExcel, $format);
$objWriter->save('php://output');
exit();
}
2、调用
$data = [
[
'number' => '001',
'type' => '类型1',
'title' => '标题1',
],
[
'number' => '002',
'type' => '类型2',
'title' => '标题2',
],
];
$header = [
'number' => '编号',
'type' => '类型',
'title' => 标题'
];
$filename = 'xxxx';
$this->excelExport($filename, $header, $data);
3、参考网站https://blog.csdn.net/withoutfear/article/details/127900108


浙公网安备 33010602011771号