用pageOffice控制元件實現 office word文件線上編輯 表格中寫資料的方法
阿新 • • 發佈:2022-12-02
PageOffice對Word文件中Table的操作,包括給單元格賦值和動態新增行的效果。
1 應用場景
OA辦公中,經常要在文件的指定位置表格,填充後端指定資料。
如word文件中,表格資料 如下表格中
人員資訊
人員資訊表 |
||
公司名稱 |
部門名稱 |
員工姓名 |
A公司 |
開發部 |
李清 |
B公司 |
銷售部 |
張三 |
怎麼把後端的關鍵資料,填充到word文件表格中呢?
2 實現方法
文件中設定好書籤,設定好表格後,通過後端呼叫pageOffice外掛程式碼就可以實現。
3 實現過程
以java的springboot框架為例
1 整合pageOffice
https://www.zhuozhengsoft.com/dowm/
從pageOffice官網
下載頁面,找到springboot的整合示例,按照裡面的整合明說,可以整合到自己的springboot專案中。
2 設定資料區域 包含表格
資料區域的技巧
https://www.kancloud.cn/pageoffice_course_group/pageoffice_course/663125
最終效果如圖
注意,一定要書籤包含整個表格,並且還要包含表格上下一行
3 通過程式碼寫入資料
@RequestMapping(value = "Word", method = RequestMethod.GET) public ModelAndView showWord(HttpServletRequest request, Map<String, Object> map) { PageOfficeCtrl poCtrl = new PageOfficeCtrl(request); poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");//設定服務頁面 WordDocument doc = new WordDocument(); //開啟資料區域 DataRegion dataRegion = doc.openDataRegion("PO_regTable"); //開啟table,openTable(index)方法中的index代表Word文件中table位置的索引,從1開始 Table table = dataRegion.openTable(1); //給table中的單元格賦值, openCellRC(int,int)中的引數分別代表第幾行、第幾列,從1開始 table.openCellRC(3, 1).setValue("A公司"); table.openCellRC(3, 2).setValue("開發部"); table.openCellRC(3, 3).setValue("李清"); //插入一行,insertRowAfter方法中的引數代表在哪個單元格下面插入一個空行 table.insertRowAfter(table.openCellRC(3, 3)); table.openCellRC(4, 1).setValue("B公司"); table.openCellRC(4, 2).setValue("銷售部"); table.openCellRC(4, 3).setValue("張三"); poCtrl.setWriter(doc); //隱藏選單欄 poCtrl.setMenubar(false); //隱藏自定義工具欄 poCtrl.setCustomToolbar(false); //開啟Word文件 poCtrl.webOpen("/doc/WordSetTable/test.doc", OpenModeType.docNormalEdit, "張三"); map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1")); ModelAndView mv = new ModelAndView("WordSetTable/Word"); return mv;
通過以上程式碼,可以將資料庫中的
A公司 開發部 李清
B公司 銷售部 張三
寫到文件中。
4 程式碼開啟後的效果
5 總結
PageOffice對Word文件中Table的操作,包括給單元格賦值和動態新增行的效果。