PHPExcel-通过迭代创建多个工作表 [英] PHPExcel - creating multiple sheets by iteration

查看:168
本文介绍了PHPExcel-通过迭代创建多个工作表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过phpexcel中的迭代创建多个工作表:

I'm trying to create multiple sheets by iteration in 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++;
}

不幸的是,这不起作用.我只得到了该迭代的一些工作表,这些工作表中充满了数据并被重命名,其中约有一半是空的.

Unfortunately this doesn't work. I only get some sheets of this iteration filled with data and renamed and about the half are empty.

这就是结果(工作表标题):

So this is the result (sheet titles):

0、2、4、6、8、9和5张空白纸

0, 2, 4, 6, 8, 9, and 5 empty sheets

我不知道为什么结果中只有偶数(和第9页)是正确的.

I can't figure out why only even numbered (and sheet 9) are correct in the result.

推荐答案

您不需要调用addSheet()方法.创建工作表后,它已经添加到excel中.在这里,我修复了一些代码:

You dont need call addSheet() method. After creating sheet, it already add to excel. Here i fixed some codes:

    //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-通过迭代创建多个工作表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆