PageOffice实现最简单的Java导出Word中的数据
普通的MS?Office?Word只能在本地磁盤上打開和編輯保存,這使得程序員在開發項目時受到很多的約束,許多的功能無法實現或者無法達到理想的效果。但是通過調用PageOffice開發平臺,不僅可以在線打開并保存Word文件還可以提交Word中的數據。
下面我就簡單的和大家分享一下如何實現Word文檔的在線打開、編輯、保存和數據的提交。
第一步:拷貝文件到WEB項目的“WEB-INF/lib”目錄下。拷貝PageOffice示例中下的“WEB-INF/lib”路徑中的pageoffice.cab和pageoffice.jar到新建項目的“WEB-INF/lib”目錄下。
第二步:修改WEB項目的配置文件。將如下代碼添加到配置文件中:
<!--?PageOffice?Begin?-->
<servlet>
<servlet-name>poserver</servlet-name><servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/poserver.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/popdf.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/sealsetup.exe</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>adminseal</servlet-name>
<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/adminseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/loginseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/sealp_w_picpath.do</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>mht</extension>
<mime-type>message/rfc822</mime-type>
</mime-mapping>
<context-param>
<param-name>adminseal-password</param-name>
<param-value>123456</param-value>
</context-param>
<!--?PageOffice?End?-->
第三步:添加引用。在WEB項目的WebRoot目錄下添加動態頁面Word.jsp。在該頁面后臺代碼中
添加自定義標簽庫:“<%@?taglib?uri="http://java.pageoffice.cn"?prefix="po"%>”
引入PageOffice類庫:“<%@page?import=”?com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*”%>”。
在HTML的<body>中添加PageOffice引用:
“<po:PageOfficeCtrlid="PageOfficeCtrl1"></po:PageOfficeCtrl>”,并設置控件所在層(<div></div>)的高和寬。
第四步:在要打開的Word文件中的相應位置手動插入書簽(“PO_userName”、“PO_deptName”)。注意:書簽名字不要重復、相鄰書簽之間至少要有一個字符,不然后一個書簽會把前一個書簽覆蓋掉;書簽的名字需以“PO_”為前綴。
第五步:Word.jsp頁面編寫代碼,打開Word文檔。部分代碼如下:
PageOfficeCtrl?poCtrl?=?new?PageOfficeCtrl(request);
//設置服務器頁面
poCtrl.setServerPage("poserver.do");
WordDocument?wordDoc?=?new?WordDocument();
//打開數據區域,openDataRegion方法的參數代表Word文檔中的書簽名稱
DataRegion?dataRegion1?=?wordDoc.openDataRegion("PO_userName");
//設置DataRegion的可編輯性
dataRegion1.setEditing(true);
//為DataRegion賦值,此處的值可在頁面中打開Word文檔后自己進行修改
dataRegion1.setValue("");
//設置字體顏色
dataRegion1.getFont().setColor(Color.RED);
?
DataRegion?dataRegion2?=?wordDoc.openDataRegion("PO_deptName");
dataRegion2.setEditing(true);
dataRegion2.setValue("");
dataRegion1.getFont().setColor(Color.RED);
?
poCtrl.setWriter(wordDoc);
//添加自定義按鈕
poCtrl.addCustomToolButton("保存",?"Save",?1);
//設置保存頁面
poCtrl.setSaveDataPage("SaveData.jsp");
//打開Word文檔
poCtrl.webOpen("doc/test.doc",?OpenModeType.docSubmitForm,?"張佚名");
poCtrl.setTagId("PageOfficeCtrl1");//此行必需
說明:若想提交數據需將webOpen()方法的第二個參數OpenModeType的類型設置為docSubmitForm提交類型
在HTML頁面添加JS函數Save(),如下:
function?Save()?{
document.getElementById("PageOfficeCtrl1").WebSave();
}
如上所述,簡單的就實現了Word文檔的在線打開并提交的操作。接下來開始編寫保存頁面。
第六步:添加保存頁面。在網站中添加動態頁面SaveData.jsp,在后臺頁面中編寫代碼處理Word文檔提交的數據,部分代碼如下:
WordDocument?doc?=?new?WordDocument(request,?response);
//獲取提交的數值
DataRegion?dataUserName?=?doc.openDataRegion("PO_userName");
DataRegion?dataDeptName?=?doc.openDataRegion("PO_deptName");
doc.close();
至此,就簡單的實現了Word文檔的在線打開、編輯、保存和提交數據了。
方案總結:
上述的示例主要是借助了PageOffice開發平臺的PageOfficeCtrl控件,利用該控件還可實現Excel文檔內容的提交、添加手寫批注、加蓋電子印章、Word文檔到PDF文檔的轉換等功能。另外,在PageOffice平臺下還可實現Excel、PPT、PDF等文檔的在線打開、編輯保存等等各種操作,很好地解決了開發OA系統的程序員的一大技術難題。?
轉載于:https://blog.51cto.com/6949400/1208597
總結
以上是生活随笔為你收集整理的PageOffice实现最简单的Java导出Word中的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32F2xx DMA Contro
- 下一篇: .Net深入学习序列化和反序列化 (转)