PhpWord使用


      接到一個試卷導出的需求,使用的PhpWord,對導出的頁面格式的規划可以使用模板,設計好自己的模板后,代碼中直接對模板的變量替換值;還有一種方法就是直接實例化一個空白頁,一點一點添加text等信息.

  下載PhpWord到項目中

composer require phpoffice/phpword

設計好自己模板的格式,將模板放到項目中,命名為.docx格式,如下圖:

//第一步:創建模板對象
$template = new TemplateProcessor('./template.docx') #模板文件路徑與名
//第二部:插入數據
$template->setValue('title','期中考試')
//如果想要插入圖片,可使用setImageValue,用法同setValue
//第三步:保存文件
$template->saveAs('./shijuan.docx') #另存為

  saveAs()是將賦值好的模板另存為到本地,如果想點擊后從瀏覽器下載,如下:

ob_clean();
ob_start();
$f = fopen('./shijuan.docx',"r");
$f_size = filesize('./shijuan.docx');
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition:attchment; filename=".shijuanload.docx');
$buffer = 1024;
$file_count = 0;
while (!feof($f) && $file_count < $file_size){
           $file_con = fread($fp,$buffer);
           $file_count += $buffer;
           echo $file_con;    
}
fclose($fp);
ob_end_flush();

  但是寫到最后,想使用CloneBlock(),DeleteBlock()和CloneRow()等方法的時候,發現總是報錯,在github上老外指出是源碼正則匹配的問題,只好改用addText的方法,還挺好用,可以設置自己享用的樣式,可以參考文檔https://phpword.readthedocs.io/en/latest/.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM