國產linux系統(銀河麒麟,統信uos)使用 PageOffice 國產版實現Word多檔案合併

qianxi發表於2024-07-26

國產linux系統(銀河麒麟,統信uos)使用 PageOffice 國產版線上開啟 pdf 檔案
PageOffice 國產版 :支援信創系統,支援銀河麒麟V10和統信UOS,支援X86(intel、兆芯、海光等)、ARM(飛騰、鯤鵬、麒麟等)晶片架構。

本示例關鍵程式碼的編寫位置
Vue+Springboot

注意
本文中展示的程式碼均為關鍵程式碼,複製貼上到您的專案中,按照實際的情況,例如文件路徑,使用者名稱等做適當修改即可使用。

不管是將多個Word檔案插入到Word模板指定位置,生成一個合併文件,還是將多個Word文件插入到一個空白的Word檔案中,首尾連線成一篇文件,都需要用到PageOffice提供的資料區域插入Word文件功能。

在實際專案開發中,以下場景可能會用到Word多檔案合併功能:

  • 起草合同 比如在一個Web專案的起草合同頁面,可以選擇合同模板,並填寫此模板所需要的合同名稱、甲乙雙方單位名稱、合同金額等合同相關資訊,還可以選擇A、B、C、D等合同條款項,每個合同條款中的內容都是儲存在一個單獨Word檔案中。使用者起草合同時,選擇了合同模板,輸入了合同的各項資訊,並勾選了A、C兩個條款項,實現自動生成合同的功能:把使用者填寫的合同資訊動態插入到合同模板,並把A、C兩個條款項的Word檔案分別插入到合同模板的對應位置。
  • 生成可行性報告 比如公司準備研發某個產品,公司各個部門都需要準備自己的參考意見,市場部需要提供市場分析報告,研發部需要提供技術分析報告等,每個部門都編寫了各自的調查分析報告Word檔案,最後生成給領導檢視的可行性報告檔案時,就需要把各部門的報告分別插入到可行性報告中對應的章節裡,合併成一篇Word檔案。
  • 標書製作 比如在標書的製作過程中,可能單獨有幾個word檔案,如標書主體檔案、技術方案、成本估算等等,然後分別由不同人負責的,各自編輯,最後插入各項子檔案到標書主體檔案,合併成一個最終的標書文件。
  • 試卷生成 比如老師要編寫一個試卷,試題庫把每道試題都單獨儲存在一份Word檔案中,並對應一條資料庫記錄,老師可以在網頁上勾選題庫中的試題,最後確認生成試卷時,把每道試題的Word檔案都合併到同一個試卷的Word文件中。

本文就以“OA專案立項可行性分析報告”為例,說明一下PageOffice是如何使用Word合併功能實現生成可行性報告的。比如某員工編輯了可行性報告的主體檔案,如下圖所示。為了讓功能描述更簡單明瞭,檔案中只使用了兩個資料區域PO_Budget(專案預算分析)和PO_Design(專案架構設計)。

image

比如開發部編輯的專案架構設計報告文件內容如下圖所示:
image

財務部門負責制定的財務預算報告內容如下圖格所示:
image

呼叫PageOffice的Word合併功能,把開發部編輯的專案架構設計文件插入到報告主體檔案的資料區域PO_Design中,把財務部門負責制定的財務預算文件插入到資料區域PO_Budget中,生成的最終可行性報告如下圖所示:
image

後端程式碼

呼叫PageOffice線上開啟報告主體檔案,比如:D:\BaoGao.docx,並動態插入專案架構設計文件(Design.docx)和財務預算文件(Budget.docx)到對應的資料區域中:

 PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

 WordDocument worddoc = new WordDocument();
 //“[word][/word]”標籤的引數地址可以是“磁碟路徑”,也可以是“文件url下載地址(不支援跨域)”
 worddoc.openDataRegion("PO_Design").setValue("[word]D:\\Design.docx[/word]");
 worddoc.openDataRegion("PO_Budget").setValue("[word]D:\\Budget.docx[/word]");

 poCtrl.setWriter(worddoc);//必須
 poCtrl.WebOpen("D:\\BaoGao.docx", OpenModeType.docNormalEdit, "張三");

參考連結:Word多檔案合併

相關文章