使用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输出控制功能在简繁体转换中的应用
Oct 09 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
轻松实现php文件上传功能
Feb 17 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
php写app用的框架整理
Sep 29 PHP
php7 list()、session及其他模块的修改实例分析
May 25 PHP
如何在PHP中使用数组
Jun 09 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
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
js实现的常用的左侧导航效果
2013/10/17 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
愚人节活动策划方案
2014/03/11 职场文书
品质主管岗位职责
2014/03/16 职场文书
求职信名称怎么写
2014/05/26 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
小学清明节活动总结
2014/07/04 职场文书
入党个人总结范文
2015/03/02 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python