使用PHPWord生成word文档的方法详解


Posted in PHP onJune 06, 2019

本文实例讲述了使用PHPWord生成word文档的方法。分享给大家供大家参考,具体如下:

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

安装

我们使用Composer 来安装PHPWord。

composer require phpoffice/phpword

如何使用

自动加载

安装好phpword后,新建一个php文档,引入autoload.php。

require 'vendor/autoload.php';

实例化

实例化并新增一个空白页。

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();

添加文字内容

向空白页添加文字内容,可以设置文字的样式,包括字体、颜色、字号、粗体等等。

$fontStyle = [
  'name' => 'Microsoft Yahei UI',
  'size' => 20,
  'color' => '#ff6600',
  'bold' => true
];
$textrun = $section->addTextRun();
$textrun->addText('你好,这是生成的Word文档。 ', $fontStyle);

链接

可以为Word文档中的文字添加用于点击跳转的链接。

$section->addLink('https://www.helloweba.net', '欢迎访问Helloweba', array('color' => '0000FF', 'underline' => \PhpOffice\PhpWord\Style\Font::UNDERLINE_SINGLE));
$section->addTextBreak();

图片

可以在word中添加图片,如图片地址logo.png,尺寸为64x64。图片源也可以是远程图片。

$section->addImage('logo.png', array('width'=>64, 'height'=>64));

页眉

为Word文档添加页眉。

$header = $section->addHeader();
$header->addText('Subsequent pages in Section 1 will Have this!');

页脚

为word文档添加页脚,页脚内容是页码,格式居中。

$footer = $section->addFooter();
$footer->addPreserveText('Page {PAGE} of {NUMPAGES}.', null, array('alignment' => \PhpOffice\PhpWord\SimpleType\Jc::CENTER));

增加一页

继续增加一页,加入内容。

$section = $phpWord->addSection();
$section->addText('新的一页.');

表格

增加一个基础表格,可以设置表格的样式。

$header = array('size' => 16, 'bold' => true);
$rows = 10;
$cols = 5;
$section->addText('Basic table', $header);
$table = $section->addTable();
for ($r = 1; $r <= 8; $r++) {
  $table->addRow();
  for ($c = 1; $c <= 5; $c++) {
    $table->addCell(1750)->addText("Row {$r}, Cell {$c}");
  }
}

生成Word文档

如果你想生成word文档放在服务器上,可以使用:

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('hellwoeba.docx');

下载Word文档

如果你想直接下载Word文档,不在服务器上保存的话,可以使用:

$file = 'test.docx';
header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="' . $file . '"');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$xmlWriter->save("php://output");

上述代码会强制浏览器下载为word文档。

更多有关PHPWord的内容,请参考PHPWord文档:http://phpword.readthedocs.org/.

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
Zend 输出产生XML解析错误
Mar 03 PHP
基于pear auth实现登录验证
Feb 26 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
php获取服务器信息的实现代码
Feb 04 PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 PHP
Web程序工作原理详解
Dec 25 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
PHP钩子实现方法解析
May 21 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
Git命令之分支详解
Mar 02 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 04 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 #PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 #PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 #PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 #PHP
PHP token验证生成原理实例分析
Jun 05 #PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 #PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 #PHP
You might like
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP实现百度人脸识别
2019/05/06 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
python递归函数绘制分形树的方法
2018/06/22 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
如何学习Python time模块
2020/06/03 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
一岗双责责任书
2014/04/15 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
三严三实对照检查材料
2014/09/22 职场文书
司机岗位职责范本
2015/04/10 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
python游戏开发之pygame实现接球小游戏
2022/04/22 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技