最近公司有一個需求,是要給一個文件根據表格位置等自動填充內容,類似這樣
紅框內是要替換的內容,所以就需要用到PHPword的模板替換功能,具體實現很簡單,如下:
一、首先composer安裝PHPword,就不多說了
二、然后是把模板中要替換的部分用變量代替,我這里因為是測試,所以變量名是隨便起的
提前在文檔中設置好變量的格式,替換后文本的格式就會和之前變量的格式一樣
三、接下來就是把原始的模板文件放入項目目錄,我是自己用tp框架測的,所以就放在了public/static/目錄下
三、然后就是代碼了
<?php namespace app\index\controller;
//引入TemplateProcessor use PhpOffice\PhpWord\TemplateProcessor; class Index { public function index() {
//實例化, 參數傳入模板文件地址 $templateProcessor = new TemplateProcessor('static/jianding.docx');
//替換(設置)變量值,我在測試的時候替換的字符比較長,這里縮短了 $templateProcessor->setValue('ketiname','測試題目'); $templateProcessor->setValue('ketifuzeren','測試題目'); $templateProcessor->setValue('suozaidanwei','測試題目'); $templateProcessor->setValue('tianbiaoriqi','測試題目');
//保存文件 $templateProcessor->saveAs('static/jianding1.docx'); } }
四、該方法執行以后,文檔中變量就被替換了
至於后面的下載功能,那就是另外的部分了
至此,完成。