【问题标题】:PHPExcel: Worksheet not desideredPHPExcel:不需要工作表
【发布时间】:2014-05-29 19:05:17
【问题描述】:

当我使用一些工作表(“inverter n°”)创建文件时,我还发现了一个空的“工作表”工作表。如何消除?

我的代码:

for ($i = 1; $i <= 4; ++$i) { // to create 4 files
    $objPHPExcel = new PHPExcel();
    for ($n = 1; $n <= 10; ++$n) { // to create 10 sheets for each files

        $objPHPExcel -> createSheet();
        $objPHPExcel -> setActiveSheetIndex($n);
        $objPHPExcel -> getActiveSheet() -> setTitle('Inverter '.$n);
        $objPHPExcel -> getActiveSheet() -> fromArray($impianti[$i]["inverter".$n]);

    }
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter -> save($output.".xlsx");        
}

【问题讨论】:

  • 默认有索引为0的空工作表,所以你可以简单地$objPHPExcel-&gt;removeSheetByIndex(0);
  • 谢谢你,很明显,工作!

标签: php phpexcel worksheet


【解决方案1】:

当您初始化对象时,PHPExcel 会创建一个新的工作表。只需在创建工作表之前添加一个 if 语句 :)

编辑:索引从零开始,因此进行了调整以反映这一点

for ($i = 1; $i <= 4; ++$i) { // to create 4 files
    $objPHPExcel = new PHPExcel();
    for ($n = 0; $n < 10; ++$n) { // to create 10 sheets for each files

        if ($n > 0) $objPHPExcel->createSheet();
        $objPHPExcel->setActiveSheetIndex($n);
        $objPHPExcel->getActiveSheet()->setTitle('Inverter '.($n+1));
        $objPHPExcel->getActiveSheet()->fromArray($impianti[$i]["inverter".($n+1)]);

    }
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save($output.".xlsx");        
}

【讨论】:

  • 抱歉,因为我在创建工作表之前设置了条件,所以脚本不再保存文件了...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2012-07-21
  • 2013-10-12
相关资源
最近更新 更多