phpword模板处理 生成word
PHP使用phpword替换模板内容,不多说,直接上代码
/** * @param $param * @throws \PhpOffice\PhpWord\Exception\CopyFileException * @throws \PhpOffice\PhpWord\Exception\CreateTemporaryFileException * 生成教学word */ public function testDataToWord($param){ $data = json_decode(ExcelToWordService::$data,true);//数据 $document = new TemplateProcessor('/home/work/XXXX/Lesson_plan_module_10_1_3.docx');//模板地址 Settings::setOutputEscapingEnabled(true);//输出转义 $document->setValue('course_theme', $data[3][2]); $document->setValue('course_time', $data[5][2]); $document->setValue('course_target', $data[6][2]); $document->setValue('course_focus', $data[7][2]); $document->saveAs('./target.docx'); ob_clean(); ob_start(); $fp = fopen('./target.docx',"r"); $file_size = filesize('./target.docx'); Header("Content-type:application/octet-stream"); Header("Accept-Ranges:bytes"); Header("Accept-Length:".$file_size); Header("Content-Disposition:attchment; filename=".'XXXX.docx');//生成的word名称 $buffer = 1024; $file_count = 0; while (!feof($fp) && $file_count < $file_size){ $file_con = fread($fp,$buffer); $file_count += $buffer; echo $file_con; } fclose($fp); ob_end_flush(); }
问题1,在替换中会遇到转义字符输出错乱的情况,加上如下代码就OK了……
\PhpOffice\PhpWord\Settings::setOutputEscapingEnabled(true);
附文档链接:https://phpword-zh.readthedocs.io/zh_CN/latest/general.html#id3
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程