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

PHPExcel - adding template in multiple sheets

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

$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++;
}

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

这是结果 (sheet 标题[图片]):

Sheet1 9

您可以使用 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');