一、为啥没用phpexcel
phpexcel中用到$str{2}语法,php版本7.4版本已废弃,使用时会报错。
二、spreadSheet
1.感觉最快的方式,是通过模板进行设置
$excel = IOFactory::load($path);
2.文件下载,发现保存格式可以和模板文件格式不一致
public function downLoad($name='数据表格',$type='xls')
{
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment;filename={$name}.{$type}");
header('Cache-Control: max-age=0');
if($type ==='xls'){
$writer = new Xlsx($this->excel);
$writer->save('php://output');
}
if($type==='xlsx'){
$writer = new Xls($this->excel);
$writer->save('php://output');
}
}
3.数据坐标
$sheet->getHighestDataColumn();//最大数据列
$sheet->getHighestDataRow();//最大数据行
$sheet->getHighestRow();//最大行
$sheet->getHighestColumn();//最大列
4.数据填充
$sheet->setCellValue('A1',"收银日报");//设置某格
$sheet->fromArray($excel_data,null,'A3');//设置某区域
5.数据格式,太麻烦,可以复制某单元格格式,再应用于某区域
$style = $sheet->getStyle("A3");//复制A3单元格格式
$sheet->duplicateStyle($style,str_replace('A1','A3',$sheet->calculateWorksheetDataDimension()));//应用于A3到数据区域末尾