工作中常常会遇到数据导出功能,比如把数据导出成word.docx文档。那么用Laravel如何实现呢。
今天给大家介绍一下phpword的使用,它可以很方便的实现word文档的生成,同时可以在word中添加表格、目录、图片、超级链接、页眉、页脚等功能强大,比如这个图就是我用程序生成的,如下图所示:

phpword官方手册:http://phpword.codeplex.com/documentation

phpword这个包是phpoffice的简版,相当于从phpoffice提取了phpword的版本,phpoffice可以实现生成docx、odt、rtf、html、pdf五种格式的文件,感兴趣可以看我另一篇文章phpoffice的例子。

一、安装phpword

在composer.json中添加phpword如下所示
“require”: {
“phpword/phpword”: “dev-master”
},
添加后执行composer install & composer update
安装成功后,就可以使用了,但是中文会出现乱码的情况,所以需要如下修改。

乱码问题解决:

   1、PHPWord/Writer/Word2007/Base.php文件内容349行添加$objWriter->writeAttribute('w:eastAsia', $font);2、在PHPWord目录全局搜utf8_encode并删掉,注意,删的时候注意纠正相关变量

二、代码示例

        $phpword = new \PHPWord();//设置默认样式$phpword->setDefaultFontName('仿宋');//字体$phpword->setDefaultFontSize(16);//字号//添加页面$section = $phpword->createSection();//添加目录$styleTOC  = ['tabLeader' => \PHPWord_Style_TOC::TABLEADER_DOT];$styleFont = ['spaceAfter' => 60, 'name' => 'Tahoma', 'size' => 12];$section->addTOC($styleFont, $styleTOC);//默认样式$section->addText('aaaa第一行文字第一行文字第一行文字第一行文字aaaa');$section->addTextBreak();//换行符//指定的样式$section->addText('Hello world! 第二行文字第二行文字第二行文字.',['name' => '宋体','size' => 16,'bold' => true,]);$section->addTextBreak(5);//多个换行符//自定义样式$myStyle = 'myStyle';$phpword->addFontStyle($myStyle,['name' => 'Verdana','size' => 12,'color' => '1BFF32','bold' => true,'spaceAfter' => 500,]);$section->addText('第三行文字第三行文字', $myStyle);$section->addText('第四行文字', $myStyle);$section->addPageBreak();//分页符//添加文本资源$textrun = $section->createTextRun();$textrun->addText('I am bold', ['bold' => true]);$textrun->addText('I am italic', ['italic' => true]);$textrun->addText('I am colored', ['color' => 'AACC00']);//列表$listStyle = ['listType' => \PHPWord_Style_ListItem::TYPE_NUMBER];$section->addListItem('河北省', 0, null, $listStyle);$section->addListItem('石家庄', 1, null, $listStyle);$section->addListItem('邯郸', 1, null, $listStyle);$section->addListItem('魏县', 2, null, $listStyle);$section->addListItem('河南省', 0, null, $listStyle);$section->addListItem('郑州', 1, null, $listStyle);$section->addListItem('信阳', 1, null, $listStyle);//超级链接$linkStyle = ['color' => '0000FF', 'underline' => \PHPWord_Style_Font::UNDERLINE_SINGLE];$phpword->addLinkStyle('mylinkStyle', $linkStyle);$section->addLink('http://www.baidu.com', '百度', 'mylinkStyle');$section->addLink('http://www.lanrenkaifa.com', null, 'mylinkStyle');//添加图片$imageStyle = ['width' => 350, 'height' => 350, 'align' => 'center'];$section->addImage(public_path().'/fen.png', $imageStyle);$section->addImage(public_path().'/test.jpg');//$section->addMemoryImage('http://localhost/image.php');//添加GD生成图片//添加对象,支持后缀:'xls', 'doc', 'ppt'//$section->addObject(public_path().'/demo.xls',['align' => 'center']);//添加标题,支持1-9标题$phpword->addTitleStyle(1, ['bold' => true, 'color' => '1BFF32', 'size' => 38, 'name' => 'Verdana']);$section->addTitle('我是标题', 1);$section->addTitle('我是标题2', 1);$section->addTitle('我是标题3', 1);//添加表格$styleTable = ['borderColor' => '006699','borderSize' => 6,'cellMargin' => 50,];$styleFirstRow = ['bgColor' => '66BBFF'];//第一行样式$phpword->addTableStyle('myTable', $styleTable, $styleFirstRow);$table = $section->addTable('myTable');$table->addRow(400);//行高400$table->addCell(2000)->addText('名称');$table->addCell(2000)->addText('价格');$table->addCell(2000)->addText('数量');$table->addRow(400);//行高400$table->addCell(2000)->addText('小米手机');$table->addCell(2000)->addText('3999元');$table->addCell(2000)->addText('50');$table->addRow(400);//行高400$table->addCell(2000)->addText('苹果手机');$table->addCell(2000)->addText('5999元');$table->addCell(2000)->addText('10');//页眉与页脚$header = $section->createHeader();$footer = $section->createFooter();$header->addPreserveText('LanRenKaiFa.com');$footer->addPreserveText('学会偷懒,并懒出效率。 - LanRenKaiFa.com Page {PAGE} of {NUMPAGES}.');//生成的文档为Word2007$writer = \PHPWord_IOFactory::createWriter($phpword, 'Word2007');$writer->save('hello.docx');

Laravel生成Word文档 - phpword相关推荐

  1. 使用PHPWord生成word文档

    有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库,使用PHPWord可以轻松处理word文档内容,生成你想要的word文档. 下载源码 安装 ...

  2. php使用phpword教程,使用PHPWord生成word文档

    有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库,使用PHPWord可以轻松处理word文档内容,生成你想要的word文档. 安装 我们使用 ...

  3. php 2003生成word,使用PHPWord生成word文档的方法详解

    使用PHPWord生成word文档的方法详解 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  使用PHPWord生成word文档的方法详解.txt ] (友情提示 ...

  4. php生成 word,使用PHPWord生成word文档的方法详解

    本文实例讲述了使用PHPWord生成word文档的方法.分享给大家供大家参考,具体如下: 有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库, ...

  5. word插件php,php使用phpword插件生成word文档

    php使用phpword插件生成word文档 php使用phpword插件生成word文档,有需要的朋友可以参考参考. require_once '../libs/PHPWord/PHPWord.ph ...

  6. thinkphp3.2集成phpword,生成word文档并下载

    因为工作需要,需要将页面内容导出到word并下载.本文介绍在PHP中如何实现生成word文档并下载. 开发框架: thinkphp3.2 Word插件: PHPWord  一.安装PHPWord 安装 ...

  7. PHP 使用word模板生成word文档示例

    <?php namespace Home\Controller; use PhpOffice\PhpWord\TemplateProcessor; use Think\Controller; c ...

  8. php导出doc文件_PHP生成Word文档的方法

    PHP生成Word文档的方法 首先,请确保在你的Windows系统中已经安装并配置好了一个典型的WAMP环境.由于Interop纯粹是一个Windows的特性,我们将在Windows平台下搭建Apac ...

  9. php 内容自动生成word文档,php生成word文档的例子

    /** * 生成word文档 * * @param string $html 内容部分 * @param string $file 文件名称 * @param string $code 当前文件编码, ...

最新文章

  1. Linux学习记录--文件压缩
  2. 2021年春季学期-信号与系统-第二次作业参考答案-第十小题
  3. 朝着理想坚实迈进_坚实原则:开放/封闭原则
  4. jboss war包放哪_如何将JBoss HR Employee Rewards项目放入云端
  5. 34 年了,“杀”不死的 Perl!
  6. C/C++的思索 C++之父访谈录
  7. 石青建站养站大师 v1.8.6.1
  8. mysql安装服务和安装中常见问题install/Remove of the Service Denied与net start mysql服务启动失败解决方法
  9. 怎么清理ug10注册表_注册表清理优化工具用它就够了,赶紧上车!
  10. 易支付v5.8个人二维码免签系统破解版
  11. VBScript教程之一(Hello VBScriopt)
  12. getchar函数详解看这一篇就够了-C语言(函数功能、使用、返回值)
  13. PFC离散元与FLAC3D数值仿真核心技术与应用” 线上培训
  14. 叹为观止,四款让人赞不绝口的优质软件,越用越上瘾
  15. 具象化的代码世界~~Emoji
  16. 程序员常用的工具网站
  17. android 仿微信聊天气泡显示图片,怎么实现微信聊天时的气泡图(一)
  18. oracle循环数据字典,Oracle DUL工作原理和技术实现
  19. 第十一周学习周报(20180514-20180520)
  20. 总裁演说思维商务谈判中的九大技巧

热门文章

  1. 制造业ERP失败原因探秘
  2. 九龙证券|最高赚7万!上周新股现两大“肉签”,本周申购日历来了
  3. Fcraft服务器租用系统,AtTackcraft
  4. Power Apps 常用公式
  5. 微信上传图片。【代码示例】
  6. 我计算机专业哪个大学枪,11个专业大学期末考试酸爽排行榜!你的专业中枪没?...
  7. iMeta期刊 第2卷第2期封底:盘古开天辟地
  8. 服务器监控功能(3种方案)
  9. canvas 像素操作(图片像素操作)
  10. 打印插件--PAZU