有时我们需要把网页内容保存为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' => ,
'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'=>, 'height'=>));
页眉

为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' => , 'bold' => true);

$rows = ;
$cols = ;
$section->addText('Basic table', $header); $table = $section->addTable();
for ($r = ; $r <= ; $r++) {
$table->addRow();
for ($c = ; $c <= ; $c++) {
$table->addCell()->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/.

使用PHPWord生成word文档的更多相关文章

  1. Aspose.Words简单生成word文档

    Aspose.Words简单生成word文档 Aspose.Words.Document doc = new Aspose.Words.Document(); Aspose.Words.Documen ...

  2. ASP.NET生成WORD文档,服务器部署注意事项

    网上转的,留查备用,我服务器装的office2007所以修改的是Microsoft Office word97 - 2003 文档这一个. ASP.NET生成WORD文档服务器部署注意事项 1.Asp ...

  3. POI生成WORD文档

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  4. PowerDesigner将PDM导出生成WORD文档

    PowerDesigner将PDM导出生成WORD文档 环境 PowerDesigner15 1.点击Report Temlates 制作模板 2.如果没有模板,单击New图标创建.有直接双击进入. ...

  5. velocity模板技术生成word文档

    本文介绍採用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容例如以下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项 ...

  6. 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案

    使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...

  7. 用php生成word文档

    一.用windows里面自带的com,然后用php生成word文档 <?php $word= new COM("word.application") or die(" ...

  8. c#生成word文档

    参考:http://blog.163.com/zhouchunping_99/blog/static/7837998820085114394716/ 生成word文档 生成word文档 view pl ...

  9. 将HTML导出生成word文档

    前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...

随机推荐

  1. (71)一篇文章带你熟悉HTTP协议

    作者:涤生_Woo链接:http://www.jianshu.com/p/6e9e4156ece3來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本篇文章篇幅比较长,先 ...

  2. java jdk原生的http请求工具类

    package com.base; import java.io.IOException; import java.io.InputStream; import java.io.InputStream ...

  3. js for循环中i++与++i有什么区别

    平时都是这样写的for循环, 1 2 3 for(var i = 0; i < 20 ; i++){        ....       } 但我看有的人这样写 for (var i = 0; ...

  4. (三)mysql -- 逻辑控制

    条件控制 CASE validity_date THEN '月' THEN '年' ELSE '季' END CASE THEN '月' THEN '年' ELSE '季' END 循环控制 待补充

  5. yii2.0 curd操作数据写法

    一.执行原生sql查询,创建yii\db\Command         insert(),update(),delete()直接构建,相应的sql语句 查: 1.查询一条 \Yii::$app-&g ...

  6. shell命令别名

    ~/.bashrc文件 [root@linuxzgf ~]# vi ~/.bashrc            在alias cp='cp -i'前加上"#"注释,重新登录即可实现复 ...

  7. leetcode-mid-Linked list- 200. Number of Islands¶

    mycode  57.92% class Solution(object): def numIslands(self, grid): """ :type grid: Li ...

  8. idea中git回退本地仓库版本

    场景:代码commit到本地仓库,还没有push到远程仓库,这时要回退代码. 介绍下Reset Head中三种Reset Type类型: 1.Mixed(默认):它回退到某个版本,本地会保留源码,回退 ...

  9. python正则表达式 分割字符串

    使用或 标准的正则表达式有小括号,但是python的没有 # -*- coding: utf-8 -*- import sys import re import sys reload(sys) sys ...

  10. python - del 方法

    转自:http://blog.csdn.net/love1code/article/details/47276683 python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮 ...