加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PhpWord使用

发布时间:2020-12-13 16:06:56 所属栏目:PHP教程 来源:网络整理
导读:? ? ? 接到一个试卷导出的需求,使用的PhpWord,对导出的页面格式的规划可以使用模板,设计好自己的模板后,代码中直接对模板的变量替换值;还有一种方法就是直接实例化一个空白页,一点一点添加text等信息. 下载PhpWord到项目中 composer require phpoffice/phpwo

? ? ? 接到一个试卷导出的需求,使用的PhpWord,对导出的页面格式的规划可以使用模板,设计好自己的模板后,代码中直接对模板的变量替换值;还有一种方法就是直接实例化一个空白页,一点一点添加text等信息.

  下载PhpWord到项目中

composer require phpoffice/phpword

设计好自己模板的格式,将模板放到项目中,命名为.docx格式,如下图:

//第一步:创建模板对象
$template = new TemplateProcessor(‘./template.docx‘) #模板文件路径与名
//第二部:插入数据
$template->setValue(‘title‘,‘期中考试‘)
//如果想要插入图片,可使用setImageValue,用法同setValue
//第三步:保存文件
$template->saveAs(‘./shijuan.docx‘) #另存为

  saveAs()是将赋值好的模板另存为到本地,如果想点击后从浏览器下载,如下:

ob_clean();
ob_start();
$f = fopen(‘./shijuan.docx‘,"r");
$f_size = filesize(‘./shijuan.docx‘);
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition:attchment; filename=".shijuanload.docx‘);
$buffer = 1024;
$file_count = 0;
while (!feof($f) && $file_count < $file_size){
           $file_con = fread($fp,$buffer);
           $file_count += $buffer;
           echo $file_con;    
}
fclose($fp);
ob_end_flush();

  但是写到最后,想使用CloneBlock(),DeleteBlock()和CloneRow()等方法的时候,发现总是报错,在github上老外指出是源码正则匹配的问题,只好改用addText的方法,还挺好用,可以设置自己享用的样式,可以参考文档https://phpword.readthedocs.io/en/latest/.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读