因为最近项目需要一个生成Word文档的功能,开始折腾起来,找到PhoWord这个类库,PhpWord是一个可以用PHP生成word的类库,用composer安装就可以用了。因为最近项目需要一个生成Word文档的功能,开始折腾起来,找到PhoWord这个类库,PhpWord是一个可以用PHP生成word的类库,用composer安装就可以用了。 PhpWord文档,想实现更多功能的同学可以仔细参考文档 https://phpword.readthedocs.io/en/latest/intro.html 使用环
PhpWord文档,想实现更多功能的同学可以仔细参考文档
https://phpword.readthedocs.io/en/latest/intro.html
使用环境
目前是在ThinkPHP5.0.21中使用的PhpWord,其他使用环境引入方式可能会有一点不同。
使用composer安装,直接使用下面的代码引入相关类库
安装
1、打开命令行进入项目根目录执行下面命令
2、composer require phpoffice/phpword
使用模式
1、直接使用代码编写word文档
2、读取原有word模板,替换相关变量
模板生成Word
使用场景:适合有一套固定的模板,只有几个关键的地方需要改变。
使用方式:下面介绍几行代码就足够完成整个word的替换了,需要更多功能参考文档。
//模板的路径,word的版本最好是docx,要不然可能会读取不了,根据自己的模板位置调整
$path = 'public/letters/templates/word/letter1.docx';
//生成word路径,根据自己的目录调整
$filePath= 'public/letters/word/letter1.docx';
//声明一个模板对象、读取模板
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($path);
//替换模板中的变量,对应word里的 ${test}
$test ="这是替换的内容";
$templateProcessor->setValue('test',$test);//传真
//生成新的word
$templateProcessor->saveAs($filePath);
代码编写Word使用场景:需要更加灵活的生成Word
语法介绍:介绍一些常用的、需要的功能,多余的也不介绍了,来些直观的才是重要的,需要更多功能参考文档。
//声明一个phpword对象
$phpWord = new \PhpOffice\PhpWord\PhpWord();
//声明一个页面,用来存放页面的内容,相当于一个容器
$section = $phpWord->addSection();
//添加一个段落文字
$section->addText('This is text');
//声明普通文字,不同段落文字,可以在后面追加文字
$textrun = $section->addTextRun();
//添加文字
$textrun->addText('This ');
//再上面内容的后面追加文字
$textrun->addText('is');
//文字换行,参数可以控制换行的行数
$textrun->addTextBreak(1);
//段落文字换行,参数可以控制换行的行数
$section->addTextBreak(1);
//文字样式,可以指定许多样式,具体可以参考文档字体样式
$textrun->addText('测试',array('size'=>18,'bold'=>true,'name'=>'宋体'));
//可以定义一个数组传进去,本质都是一个数组
$fontStyle['size']=12;
$fontStyle['bold']=true;
$textrun->addText('测试',$fontStyle);
//生成Word文档
$filePath= 'public/letters/word/letter1.docx';
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save($filePath);
PS:
1、Phpword虽然可以用代码生成word,但对于一些文字图片的定位操控起来非常麻烦,甚至无法控制。
2、尽量使用模板,直接改动模板更加方便,只替换一些关键字就好。
3、使用模板的时候要注意word格式要是docx,使用doc可能会报错。
结语
以上是自己这几天使用Phpword小小心得,希望大家少走弯路吧,也给自己以后再使用时可以温习下,如有不正确之处,还望指出。
沃梦达教程
本文标题为:PhpWord的一些简单用法
猜你喜欢
- laravel通用化的CURD的实现 2023-03-17
- Laravel balde模板文件中判断数据为空方法 2023-08-30
- php微信公众号开发之秒杀 2022-11-23
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- PHP中PDO事务处理操作示例 2022-10-15
- 用nohup命令实现PHP的多进程 2023-09-02