首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHPExcel :如何使用模板创建新工作表?

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

Stack Overflow用户
提问于 2017-08-05 13:25:54
回答 2查看 2.8K关注 0票数 1

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

我从新的tamplate开始:

代码语言:javascript
运行
AI代码解释
复制
$filePath = public_path('Template.xls');
$objPHPExcel = PHPExcel_IOFactory::load($filePath);

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

EN

回答 2

Stack Overflow用户

发布于 2017-08-05 13:41:45

您不是简单地想要创建一个新的工作表,而是要复制一个具有其所有现有样式的工作表

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

代码语言:javascript
运行
AI代码解释
复制
$newSheet = clone $objPHPExcel->getActiveSheet();
$newSheet->setTitle('Worksheet 2');
$objPHPExcel->addSheet($newSheet);
票数 3
EN

Stack Overflow用户

发布于 2017-08-05 19:10:33

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

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

代码语言:javascript
运行
AI代码解释
复制
$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()方法并不能保证正确地复制该信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45522447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文