最近thinkphp项目中需要用phpword来生成一个docx的文件,其中用到了phpword,首先大概说一下phpword的安装和基本使用。
一、phpword安装
phpword是通过composer来安装依赖,直接运行以下代码到项目目录里
composer require phpoffice/phpword
二、基本的操作方法(模板替换)
<?php
namespace Home\Controller;
use Think\Controller;
use PhpOffice\PhpWord\TemplateProcessor;
require_once 'C:\wamp64\www\wenjiantest\ThinkPHP\Library\vendor\autoload.php';
//******//composer安装完成后autoload.php,注意路径一定要准确
class DocumentController extends Controller{
public function index(){
$temp=new TemplateProcessor('C:\wamp64\www\wenjiantest\ThinkPHP\Library\vendor\templatee.docx');
$temp->setValue('user', '雷锋的雷');
$temp->setValue('email', '1132207176@qq.com');
$temp->saveAs("test.docx");
}
}
三、主要事项
今天要说的重点就是这个,在做测试的时候一直提示Could not close zip file,在网上搜了一些解决办法,因为phpword在国内使用的比较少,所以也没准确的找到解决方法,大多都是说内存满了、文件夹权限等方面的问题,调整之后一直还是一样的提示,其实这个问题是docx模板的版本写入存在问题,具体解决方法:
? ? ? ?将模板文件template.doc另存为template.docx(切记不要直接改后缀,用word打开另存为docx才有效)
希望大家在以后的开发过程中能避坑。
|