如何在線生成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
- <?php
- function edit($file, $needle, $heap) {
- $content = @file_get_contents($file);
- if(!$content){
- echo "文件找不到";
- return false;
- }
- $content = preg_replace("/$needle/", $heap, $content);
- return $content;
- }
- $sheet_title = 'chengjidan.docx';
- header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
- header('Content-Disposition: attachment;filename="'.$sheet_title. '"');
- header('Cache-Control: max-age=0');
- ob_clean(); // 必須加這一句,否則生成的文件可能打不開。因為有額外的輸出。
- echo edit('muban.docx', 'xxxxxxxx', $_REQUEST['name']); /// xxxxxxxx就是你要替換掉的內容
- exit;
- [root@code wordgen]# ls
- muban.docx index.php
6. 通過網站地址: https://your_web_path/index.php?name=Raywill 就能下載到Word啦~!打開看看,裏麵的xxxxxxx全部被替換成Raywill啦~簡單不?!
如果你用的不是php,而是其他編程語言,也不用擔心,思路都是一樣的。讀文件,替換,輸出,如此而已。
最後更新:2017-04-01 13:37:10