代码之家  ›  专栏  ›  技术社区  ›  Kurnia Rocki

PHPExcel-在多个工作表中添加模板

  •  0
  • Kurnia Rocki  · 技术社区  · 6 年前

    我正在尝试使用phpexcel在多个工作表中添加模板:

    $sheet = $objPHPExcel->getActiveSheet();
    
    //Start adding next sheets
    $i=0;
    while ($i < 10) {
      $objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
      $objPHPExcel = $objPHPExcel->load('template.xlsx'); // Empty 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++;
    }
    

    不幸的是,这不起作用。我只有两张纸,一张带模板,一张带“9”标题

    这就是结果(图纸标题[图像]):

    Sheet1 9

    1 回复  |  直到 6 年前
        1
  •  1
  •   Shankari    6 年前

    您可以使用PHPSpreadhsheet。这就是目前不推荐使用的PHPExcel库的继续内容。

    将库包含在中。php文件,如下所示-

    <?php
    require 'vendor/autoload.php';
    
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    
    $spreadsheet = new Spreadsheet();
    
    ?>
    

    您可以通过添加-

    $spreadsheet->setActiveSheetIndex(0)->setCellValue('A1','Hello');
    
    $spreadsheet->getActiveSheet()->setTitle('new');
    $writer = new Xlsx($spreadsheet);
    
    $filename = 'XXX';
    
    header('Content-Disposition: attachment;filename="'. $filename .'.xls"'); 
    header('Cache-Control: max-age=0');
    
    $writer->save('php://output');