PHPExcel - 通过迭代创建多个工作表

标签 php phpexcel

我试图在 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/

相关文章:

PHP 覆盖方法规则

PHP 代码一直有效,直到我将它变成一个函数

php - 为什么 array_udiff 使用比较函数而不是谓词函数?

php - 解析 - JSON - 数组的数组

php - 如何让 xdebug var_dump 显示完整的对象/数组

php - 我可以选择多个单元格或一组范围来设置它们的样式吗?

php - 使用phpexcel上传excel文件并插入数据到mysql数据库

php - 忽略空单元格 PHPExcel

带有宏的 PHPExcel XLSM 文件

php - 合并两个表并横向输出日期PHPExcel