后端开发|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中文网!!