我试图在 phpexcel 中通过迭代创建多个工作表:
$i=0;
while ($i < 10) {
// Add new sheet
$objWorkSheet = $objPHPExcel->createSheet();
// Attach the newly-cloned sheet to the $objPHPExcel workbook
$objPHPExcel->addSheet($objWorkSheet);
// Add some data
$objPHPExcel->setActiveSheetIndex($i);
$sheet = $objPHPExcel->getActiveSheet();
$sheet->setCellValue('A1', 'Hello'.$i)
->setCellValue('B2', 'world!')
->setCellValue('C1', 'Hello')
->setCellValue('D2', 'world!');
// Rename sheet
$sheet->setTitle($i);
$i++;
}
不幸的是,这不起作用。我只得到这个迭代的一些工作表,其中填充了数据并重命名,大约一半是空的。
这就是结果(工作表标题):
0、2、4、6、8、9 和 5 张空纸
我不明白为什么结果中只有偶数(和第 9 页)是正确的。
最佳答案
您不需要调用 addSheet()
方法。创建工作表后,它已经添加到 excel 中。在这里我修复了一些代码:
//First sheet
$sheet = $objPHPExcel->getActiveSheet();
//Start adding next sheets
$i=0;
while ($i < 10) {
// Add new sheet
$objWorkSheet = $objPHPExcel->createSheet($i); //Setting index when creating
//Write cells
$objWorkSheet->setCellValue('A1', 'Hello'.$i)
->setCellValue('B2', 'world!')
->setCellValue('C1', 'Hello')
->setCellValue('D2', 'world!');
// Rename sheet
$objWorkSheet->setTitle("$i");
$i++;
}
关于PHPExcel - 通过迭代创建多个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850013/