PHPExcel : 如何使用模板创建新工作表?



目前使用模板excel工作表添加数据,要求也是添加新工作表,因此需要使用相同的模板添加新工作表。

我的从新的坦板开始:

$filePath = public_path('Template.xls');
$objPHPExcel = PHPExcel_IOFactory::load($filePath);

现在,我必须在同一个文件中使用相同的模板创建新工作表,而无需克隆第一张工作表,因为需要加载没有数据的新模板。

您不仅要创建一个新工作表,还希望复制具有所有现有样式的工作表

因此,创建现有工作表的克隆,为其指定新标题(因为工作表标题必须是唯一的(,然后将该克隆附加到工作簿。

$newSheet = clone $objPHPExcel->getActiveSheet();
$newSheet->setTitle('Worksheet 2');
$objPHPExcel->addSheet($newSheet);

自从我发布了您原始问题的答案以来,您已经修改了问题。

如果需要在加载原始模板并用数据填充从模板创建新工作表,则需要将模板重新加载为新的 PHPExcel 对象,并将工作表从该对象注入到原始工作簿中:

$filePath = public_path('Template.xls');
$objPHPExcel = PHPExcel_IOFactory::load($filePath);
// fill with data
$template = PHPExcel_IOFactory::load($filePath);
$newSheet = clone $template->getActiveSheet();
$objPHPExcel->addExternalSheet($newSheet);

addExternalSheet()方法可确保在添加工作表时,所有样式和结构(合并的单元格(都与工作表一起干净地复制。仅使用addSheet()方法并不能保证正确复制该信息

最新更新