閱讀988 返回首頁    go iPhone_iPad_Mac_apple


如何在線生成Word文檔?一種極簡,極強大的方法,支持圖片表格等各種格式

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

大家在日常工作中會遇到這樣的情況,在線給數萬人生成一個證書、成績單什麼的,而且要求保存為word文檔讓大家下載。

難道我們要去學習word的編碼格式?難道要去找一個word讀寫庫?太複雜了!我們其實隻是要把一個Word文檔,每次替換幾個字而已,對吧?


思路來了:

1、先根據你們業務的要求,製作一個樣式豐富好看的Word文檔,把裏麵要替換的內容寫成xxxxxxxx, yyyyyyy等通用字符串。

2、然後把這個Word文檔另存為xml格式,例如:muban.xml

3、去我的電腦-對應文件夾裏麵找到 muban.xml ,然後把它重命名為 muban.docx  (為什麼不直接在2中保存為docx呢?直接保存為docx格式的話,Office會用二進製的方式寫文件。這樣就沒法做後麵的替換了)

4、把做好的 muban.docx 上傳到服務器

5. 把下麵的一段代碼也放到服務器,保存為index.php

  1. <?php  
  2. function edit($file$needle$heap) {  
  3.   $content = @file_get_contents($file);  
  4.   if(!$content){  
  5.     echo "文件找不到";  
  6.     return false;  
  7.   }  
  8.   $content = preg_replace("/$needle/"$heap$content);  
  9.   return $content;  
  10. }  
  11. $sheet_title = 'chengjidan.docx';  
  12. header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');  
  13. header('Content-Disposition: attachment;filename="'.$sheet_title'"');  
  14. header('Cache-Control: max-age=0');  
  15. ob_clean(); // 必須加這一句,否則生成的文件可能打不開。因為有額外的輸出。  
  16. echo edit('muban.docx''xxxxxxxx'$_REQUEST['name']);   /// xxxxxxxx就是你要替換掉的內容  
  17. exit;  


最後服務器上得到2個文件,一個是index.php,一個是 muban.docx:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. [root@code wordgen]# ls  
  2. muban.docx   index.php  


6. 通過網站地址: https://your_web_path/index.php?name=Raywill   就能下載到Word啦~!打開看看,裏麵的xxxxxxx全部被替換成Raywill啦~簡單不?!


如果你用的不是php,而是其他編程語言,也不用擔心,思路都是一樣的。讀文件,替換,輸出,如此而已。

最後更新:2017-04-01 13:37:10

  上一篇:go 發個博,慶祝雲棲上線~
  下一篇:go lucene字典實現原理