phpword使用的人不多,国内相关文档也比较少,所以坑比较多。我在这里躺坑躺了一整天,记录一下以备后需。

1、使用phpword需要很多组件的支持,所以用composer来安装管理他

a、下载phpword,放到组件目录;

b、下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此你可以在任何目录下直接使用 composer 命令。(到环境变量检查下,是否配置环境变量,这样在任何目录都可以使用composer);

c、composer进入到phpword目录下composer install即可。

2、使用需要引入的文件

只需要引入phpword安装包目录下的bootstrap.php即可。

require_once 'inc/PHPWord-master/bootstrap.php';

3、使用中文报错。

比如:

InvalidArgumentException' with message 'Invalid style value: chineseCounting

Invalid style value: japaneseCounting

解决办法:

找到PhpWord\Style\NumberingLevel.php这个文件中的public function setFormat($value)方法

里面$enum数组中添加“chineseCounting”和“japaneseCounting“;

eg:

public function setFormat($value)

{

$enum = array('bullet', 'decimal', 'upperRoman', 'lowerRoman', 'upperLetter', 'lowerLetter', 'chineseCounting','japaneseCounting');

$this->format = $this->setEnumVal($value, $enum, $this->format);

return $this;

}

4、模板替换

很多时候,我们使用一个word模板,然后把里面要修改的部分设置为预定义标签,然后使用模板替换,就可以快速简便的生成想要的文档。

参考官方文档:http://phpword.readthedocs.io/en/latest/templates-processing.html

5、phpword内部循环输出内容

请参考官方文档,这里给个例子

require_once 'inc/PHPWord-master/bootstrap.php';//加载word组件支持

$wordmuban = $_SERVER['DOCUMENT_ROOT'].'/inc/word.docx';//模版文件目录

$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($wordmuban);//加载文件模版创建新word文件

$templateProcessor->cloneRow('num', $sizenum);//复制循环的行,请参考官方文档

//复制循环的行后,之前模板中的标签会被自动编号“标签+#行数”

for($i=1;$i<=$sizenum;$i++){

$templateProcessor->setValue('num#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['num']));

$templateProcessor->setValue('type1#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['type1']));

$templateProcessor->setValue('type2#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['type2']));

$templateProcessor->setValue('level#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['level']));

$templateProcessor->setValue('areasize#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['areasize']));

$templateProcessor->setValue('price#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['price']));

$templateProcessor->setValue('amountprice#'.$i, iconv("gbk","utf-8",$sizedata[$i-1]['amountprice']));

}

//创建文件目录

if (!file_exists($dir)){

mkdir ($dir,0755,true);

}

$savefile = $templateProcessor->saveAs($filename);//保存文件

未完待续

遇到的问题与解决办法:

1、phpword错误提示'Could not close zip file XXX‘

问题原因:phpword的模板文件必须是docx,如果是doc的文档,必须把模板文件另存为docx,即可解决。

php word组件使用方法,phpword使用笔记相关推荐

  1. php word组件使用方法,快速解决PHP调用Word组件DCOM权限的问题讲解

    下面小编就为大家分享一篇快速解决PHP调用Word组件DCOM权限的问题,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 1. 首先必须要在电脑上安装 Office 2. window ...

  2. Vue学习(组件传参)-学习笔记

    文章目录 Vue学习(组件传参)-学习笔记 父到子 子到父 父操作子-ref(类似于操作dom) 兄弟之间传参 Vue学习(组件传参)-学习笔记 父到子 Father:(index) <temp ...

  3. Excel.Application组件使用方法 matlab可以参考使用

    Excel.Application组件使用方法,适合应用于使用EXCEL组件做WEB应用开发. 转自http://bbs.xtjc.com/thread-376095-1-1.html 定制模块行为 ...

  4. Excel.Application组件使用方法,适合应用于使用EXCEL组件做WEB应用开发。

    Excel.Application组件使用方法,适合应用于使用EXCEL组件做WEB应用开发. 转自http://bbs.xtjc.com/thread-376095-1-1.html 定制模块行为 ...

  5. PDF转换word格式的方法总结

    PDF转换word格式的方法总结 作者: 善用佳软 日期: 2009-12-09 分类: 1 文本办公, PDF 标签: PDF <全面接触PDF:最好用的PDF软件汇总>中主要介绍了pd ...

  6. word转html报错,word转html方法调研

    word转html方法调研 最近有需求可能用到word转html,所以前期调研了一番,整理如下. 问题描述 在不明确问题的情况下谈解决方案是不明智的,所以先明确问题: 现在线下有一批word文档,后台 ...

  7. php word权限,快速解决PHP调用Word组件DCOM权限的问题

    快速解决PHP调用Word组件DCOM权限的问题 1. 首先必须要在电脑上安装 Office 2. windows+r : 输入 dcomcnfg.exe 打开组件服务,然后双击 组件服务 ==> ...

  8. SVO中 Inverse Compositional Image Alignment方法的学习笔记

    SVO中 Inverse Compositional Image Alignment方法的学习笔记 这篇文章 光流法简介 逆向光流法 结尾 这篇文章  在SVO系统中的"Relaxation ...

  9. Beyond Compare比较Word文件的方法

    2019独角兽企业重金招聘Python工程师标准>>> office软件是我们在日常工作中常常会用到的,在使用过程中如果遇到了比较两个Word文件的差异的问题,这个时候往往会非常的耗 ...

最新文章

  1. 【蓝桥java】递归基础之39级台阶
  2. centos redhat 6+ openldap 初级介绍
  3. cpickle安装_Py之h5py:Python库之h5py库的简介、安装、使用方法详细攻略
  4. tldr一个精简的man手册替代品
  5. html 获得文本节点,JavaScript获取节点——获取文本节点
  6. 如何保证执行异步方法时不会遗漏 await 关键字
  7. WebApiClient的接口输入验证
  8. 树莓派使用STEP4:安装vim
  9. 史上最全的CSS hack方式一览(鉴)
  10. bzoj1113[Poi2008]海报PLA
  11. 解决Maven报错“Cannot resolve com.lowagie:itext:2.1.7.js7”
  12. 最新服务器主流硬盘,主流服务器的raid(磁盘阵列)配置
  13. 365天英语口语大全
  14. 【Day2.2】海边行宫忘忧宫——“爱与希望”之宫
  15. iOS -- 开源项目和库
  16. Scroller的使用
  17. 你怎样理解需求分析师_我真正理解心理咨询是如何起效的,是从我成为来访者的那一刻开始...
  18. 软件工程——软件总体设计
  19. python 桌面程序自动化测试_对Windows桌面应用程序进行UI自动化测试
  20. 三分钟入门大数据之用户画像标签的分类

热门文章

  1. Python爬虫利用18行代码爬取虎牙上百张小姐姐图片
  2. 【Linux系统】centos 停止维护有什么影响呢?
  3. 云课堂计算机课病毒及安全设置答案,智慧职教云课堂PC端
  4. 看过来!看过来!网络安全类的认证课程都在这里
  5. linux中文显示乱码情况解决
  6. android 仿qq发动态,Android opengl 实现动态贴纸(仿QQ的拍摄)
  7. Linux 学习路线图 #CSDN博文精选# #IT技术# #学习路线# #系统化学习#
  8. 鸟哥的私房菜 笔记备份
  9. 微信硬件平台wifi设备通信第一篇
  10. 【硬件和驱动相关】wifi设备没有工作 ubuntu18.0.4 无线网卡 intel 6 AX200