前言:
相信你們都有過操做word文檔表格的經歷,對於每行數據的記錄與操做是比較方便的。但這是不夠的,對於一些OA項目,則須要在線打開word文檔並經過後臺的設置將數據添加到word表格中,甚至對錶格進行添加新行的操做。這須要開發者具有將activex控件集成到Java環境的能力。對於大部分Java開發工程師來講,僅僅解決本身項目中的需求就要掌握activex控件,未免學習成本太大。javascript
因此咱們今天就要介紹一箇中間件技術——pageoffice,此中間件技術已經將 在web系統操做office文檔的大部分功能整合完畢,你們只須要關注本身web系統的業務邏輯便可,學習成本低,且功能很豐富。下面咱們來實戰用pageoffice實現一下用Java語言在線打開word文檔的同時,向word表格中添加新行並賦值的功能。html
先看效果:
此爲原始文檔java
下面是通過pageoffice後臺設置後頁面打開的文檔jquery
能夠看到文檔表格由原來的三行增長到了5行,而且經過後臺向相應的單元格中添加了相應的數據。web
部署步驟(只需4步)
1.官網http://www.zhuozhengsoft.com/dowm/下載集成文件,引入jar包,配置web.xml瀏覽器
去剛纔下載的集成文件中找到lib,將裏面的內容放在項目web-inf的lib中引入jar包,而後將web.xml的pageoffice配置引入到本身項目的wb.xml中app
2.在父頁面aaa.jsp(須要打開文檔的頁面)放一個a標籤或者button
寫a標籤以前先引入pageoffice須要的js文件less
<script type="text/javascript" src="/jquery.min.js"></script> <script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>
而後添加a標籤 webapp
<a href="javascript:POBrowser.openWindowModeless('WordTable.jsp' , 'width=1200px;height=800px;');">向Word文檔中的Table插入新行並賦值</a>
<a href="javascript:POBrowser.openWindowModeless('WordTable.jsp' , 'width=1200px;height=800px;');">向Word文檔中的Table插入新行並賦值</a> 3.在父頁面同級目錄下建立一個名爲WordTable.jsp的文件 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"%> <% PageOfficeCtrl poCtrl = new PageOfficeCtrl(request); WordDocument doc = new WordDocument(); Table table1 = doc.openDataRegion("PO_T001").openTable(1); table1.openCellRC(1,1).setValue("PageOffice組件"); int dataRowCount = 5;//須要插入數據的行數 int oldRowCount = 3;//表格中原有的行數 // 擴充表格 for (int j = 0; j < dataRowCount - oldRowCount; j++) { table1.insertRowAfter(table1.openCellRC(2, 5)); //在第2行的最後一個單元格下插入新行 } // 填充數據 int i = 1; while (i <= dataRowCount) { table1.openCellRC(i, 2).setValue("AA" + String.valueOf(i)); table1.openCellRC(i, 3).setValue("BB" + String.valueOf(i)); table1.openCellRC(i, 4).setValue("CC" + String.valueOf(i)); table1.openCellRC(i, 5).setValue("DD" + String.valueOf(i)); i++; } poCtrl.setWriter(doc); poCtrl.setServerPage(request.getContextPath()+"/poserver.zz"); poCtrl.webOpen("test.doc", OpenModeType.docNormalEdit,"張佚名"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Word中的Table的數據填充</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <div style="width: auto; height: 750px;"> <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%> </div> </body> </html>
4.新建文件
新建一個名爲test.doc的word文件(若是新建的是docx文件就將第三步的poCtrl.webOpen("test.doc", OpenModeType.docNormalEdit,"張佚名");代碼改成poCtrl.webOpen("test.docx", OpenModeType.docNormalEdit,"張佚名");jsp
將新建的test.doc文件放在WordTable.jsp同級目錄下。
本地打開test.doc文件,建立一個3行5列的表格,而後點擊表格左上角的全選標誌選中整個表格。
在整個表格選中的狀況下,點擊菜單欄插入-書籤--書籤名設置爲PO_T001--點擊添加。
而後啓動項目直接訪問aaa.jsp點擊連接.此時會提示安裝插件,點擊安裝成功後提示註冊,填寫相關信息,填寫註冊碼Q37LN-W8NI-KFSQ-LEY3Y就能夠打開文檔.
注意:若是須要更豐富的功能,你們能夠去pageoffice官網下載示例代碼直接將samples4文件夾扔到Tomcat的webapps下,啓動Tomcat,瀏覽器訪問http://localhost:8080/Samples4/index.html,查看示例中的下面一個連接,直接看samples4文件夾下WordTable文件夾裏面的代碼.
剛開始接觸pageoffice的話,也能夠看視頻快速上手http://www.zhuozhengsoft.com/Technical/