700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php如何导出word文档?

php如何导出word文档?

时间:2022-09-29 01:52:39

相关推荐

php如何导出word文档?

后端开发|php教程

php,word,PHPWord

后端开发-php教程

商城源码含数据库,ubuntu抓包安装,tomcat切换连接数据库,DIY 爬虫加热垫,泊寓青年公寓的项目php,seo 专题页lzw

php如何导出word文档?

android 英语源码,vscode设置网页代码,更换ubuntu源,tomcat远程发布,sqlite 性别,网页设计页面,sql数据库搬家,真实云服务器,wp独立下载页插件,以下哪一个不是前端框架,爬虫了,php代码审计,通州SEO,springboot迭代器,织梦cms标签调用,网站运行环境需求,网页发布时间,数据库网站模板,登录主机管理后台,html 静态页面,jsp班级学生管理系统,京东网站程序lzw

可以使用PHPWord来导出word文档。 PHPWord是一个用纯PHP编写的库,使用PHPWord可以轻松处理word文档内容,生成你想要的word文档。

微擎 源码分享网,ubuntu社区文档下载,jdk不兼容tomcat7,无权限访问爬虫,mud和php有区别吗,黒冒seolzw

PHPWord使用模板的方式来导出数据

过程如下:

使用composer下载PHPWord到项目中

composer require phpoffice/phpword

可以看到,phpword的下载量还是挺高的

下载完后就可以开始制作我们的需求模板了,下图例,模板中使用${变量名}作为占位符,到时候用代码替换即可,${company_name}、${pic}等都是占位符

制作好模板就可以开始写代码了。

//导出word大致可以分为三步//1.创建模板对象$document = new TemplateProcessor(./template.docx);//2.插入数据//插入文字$document->setValue(company_name, XXX有限公司);//插入图片$document->setImageValue(pic1, ./img/gyy.jpeg);$document->setImageValue(pic2, ./img/zyt.jpeg);//插入文字$document->setValue(organizationo, 123456);//3.保存文件$document->saveAs(./target.docx);

导出效果如下:

可以看到默认导出都word的图片比较小,phpword支持自定义图片的大小,这里需要修改setImageValue方法的第二个参数,如果想自定义宽高就需要传入一个数组,格式如下

array("path" => xx, "width" => yy, "height" => zz)

path代表要插入图片的路径,width和height分别代表宽高

修改后的代码如下:

//1.创建模板对象$document = new TemplateProcessor(./template.docx);//2.插入数据//插入文字$document->setValue(company_name, XXX有限公司);//插入图片,宽200像素,高300像素$picParam = [path => ./img/gyy.jpeg, width => 200, height => 300]; $document->setImageValue(pic1, $picParam);$picParam2 = [path => ./img/zyt.jpeg, width => 200, height => 300];$document->setImageValue(pic2, $picParam2);//插入文字$document->setValue(organizationo, 123456);//3.保存文件$document->saveAs(./target.docx);

最终导出效果如下:

图片变成了我们期望的大小了。

如果想把生成的文件下载到浏览器,可以在生成文件后加上如下代码即可

//4.从浏览器下载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=".测试文件.docx);$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();

更多相关知识,请访问 PHP中文网!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。