PHP 使用word模板生成word文档示例
PHP 使用word模板生成word文档示例
namespace Home\Controller;
use PhpOffice\PhpWord\TemplateProcessor;
use Think\Controller;
class TestController extends Controller {
/**
* word模板生成word文档
* composer安装命令:composer require phpoffice/phpword
* 地址:https://packagist.org/packages/phpoffice/phpword
* word模板中的变量写法示例:用户:${username} 头像:${headerImg}
*/
public function phpword(){
//1.加载word模版
$TemplateProcessor = new TemplateProcessor('template/word_1.docx');
//2.给模板中的变量赋值
$TemplateProcessor->setValue('username','赵辉');
$TemplateProcessor->setValue('sex','男');
$TemplateProcessor->setImageValue('headerImg','template/headerImg.jpg');
//2.1还可以同时给多个变量同时赋值
$TemplateProcessor->setValues([
'username' => '赵辉',
'sex' => '男'
]);
//2.2还可以给图像设置样式
$TemplateProcessor->setImageValue('headerImg', [
'path' => 'template/headerImg.jpg',
'width' => 200,
'height' => 200,
'ratio' => false
]);
//3.给模板循环数次
$replacements = [
['user'=>'张三','address'=>'北京市'],
['user'=>'李四','address'=>'河北省'],
];
$TemplateProcessor->cloneBlock('block_name', 0, true, false, $replacements);
//4.给word模板克隆表格行
$values = [
['userId'=>1,'userName'=>'老王','userAddress'=>'建设路'],
['userId'=>2,'userName'=>'老赵','userAddress'=>'青园街'],
];
$TemplateProcessor->cloneRowAndSetValues('userId', $values);
//5.生成word文档并保存
$TemplateProcessor->saveAs('template/'.date('Y-m-d-H-i-s').'.docx');
}
}
模版示例:
生成示例:
PHP 使用word模板生成word文档示例相关教程