2019年7月

短篇过一次手备忘。

需要在创建的xls文档增加多一页(Sheet)。

一开始在这个地方提示下标越界

$xls->setActiveSheetIndex(1);

由于官方附的samples内没有找到明确的范例,所以参考 PHPExcel.php 源码内方法修改

$sheet = $xls->createSheet();
$xls->addSheet($sheet);
$xls->setActiveSheetIndex(1);

这次报错

PHP Fatal error: Uncaught PHPExcel_Exception: Workbook already contains a worksheet named 'Worksheet'.
Rename this worksheet first.

感觉奇怪由于文档内并没有命名为Worksheet的页,查了源码设置 sheet name 在类里的方法对应是 setTitle(),可是手动重命名后仍报这个错误且注明的名称冲突为重命名的新名称。

不啰嗦废话了,结论是 createSheet() 之后不需要 addSheet() 修正后的写法

$sheet = $xls->createSheet(1);
$sheet->setTitle("第二页");

$sheet->setCellValue('A1','第一列标题'); 
//等同于 $xls->setActiveSheetIndex(1)->setCellValue('A1','标题1'); 

参考文: https://stackoverflow.com/questions/9850013/phpexcel-creating-multiple-sheets-by-iteration