需求
在 Word 固定位置插入 Excel 文件。
方案一:使用 PHPWord 的 addObject 写入时插入
应用 PHPword 生成 Word文 档并插入 Excel,Excel 使用 PHPExcel 生成。
方案二:Word 模板文件中插入 Excel 附件
操作步骤:
- 编写 PHPWord 模板文件(在固定位置插入一个空的 Excel 模板附件),假定为:e.docx
- 设置模板文件值,得到除了Excel附件未更新的:a.docx
- 修改 a.docx 扩展名为 a.zip
- 解压 a.zip,此时发现解压后的 “a/” 下存在一个 xxx.xlsx 文件(取决于附入文件类型)
- PHPExcel 生成所需的Excel文件,替换 “a/” 下的 xxx.xlsx
- 压缩 a 为 zip 文件,得到 a.zip
- 重命名 a.zip 为 a.docx
总结
两种方案各有优劣,不止用于 Excel 附件、PHP 语言,也可是其他类型的文件或编程语言;
需要注意的是,方案2中 xxx.xlsx 在 word2013、word2016 和 wps 中可能有不同的表现(wps好像会把 xxx.xlsx 转换成二进制文件,所以方案2的步骤里,替换时还需要做一次转换)。