一、需求描述。
需要將客戶端電腦的 office 辦公文件上傳到服務器
二:方案
總體方案用 pageoffice 組件操作 word 或者 excel 文件
1:在線打開文檔 用pageoffice 在線打開編輯保存的功能
2:上傳本地文件用 pageffice 提供的導入文件的js 方法
document.getElementById("PageOfficeCtrl1").ExcelImportDialog(); //導入 excel 文件
document.getElementById("PageOfficeCtrl1").WordImportDialog();//導入word文件
三、具體的實現過程
1:配置web.xml
<!-- 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.zz</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/sealsetup.exe</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/posetup.exe</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/jquery.min.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pobstyle.css</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.zz</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/loginseal.zz</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/sealimage.zz</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>111111</param-value>
</context-param>
<!-- PageOffice End -->
2:實現代碼(以word爲例)
(1)導入本地文件
v<%@ page language="java" import="java.util.*,java.text.SimpleDateFormat" pageEncoding="utf-8"%>
<%@ page
import="com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"%>
<%
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
//設置授權程序servlet
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
//添加自定義按鈕(第二個參數對應頁面中js 方法名)
poCtrl.addCustomToolButton("保存","Save",1);
poCtrl.addCustomToolButton("導入文件", "importData()", 15);
poCtrl.addCustomToolButton("提交數據", "submitData()", 1);
//設置保存頁面
poCtrl.setSaveFilePage("SaveFile.jsp");
WordDocument doc = new WordDocument();
poCtrl.setWriter(doc);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>導入文件</title>
</head>
<body>
<!-- ***************************************PageOffice組件的使用****************************************** -->
<script type="text/javascript">
function importData() {
document.getElementById("PageOfficeCtrl1").WordImportDialog();
}
function Save() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
</script>
<div style="width: auto; height: 600px;">
<%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
</div>
<!-- ***************************************PageOffice組件的使用****************************************** -->
</body>
</html>
(2)保存上傳到服務器
<%@ page language="java" import="java.util.*,com.zhuozhengsoft.pageoffice.*" pageEncoding="utf-8"%>
<%
FileSaver fs=new FileSaver(request,response);
fs.saveToFile("d:\\aa.doc");
fs.close();
%>
如果要導入excel文件
1:
WordDocument doc = new WordDocument();
poCtrl.setWriter(doc);
改爲
Workbook wb = new Workbook();
Sheet sheet = wb.openSheet("Sheet1");
poCtrl.setWriter(wb);
2:
function importData() {
document.getElementById("PageOfficeCtrl1").WordImportDialog();
}
改爲
function importData() {
document.getElementById("PageOfficeCtrl1").ExcelImportDialog();
}
3:保存代碼
fs.saveToFile("d:\\aa.doc");
改爲
fs.saveToFile("d:\\aa.xls");
四:最終的效果(和本地office的打開功能一樣)
訪問頁面.此時會提示安裝插件,點擊安裝成功後提示註冊,填寫相關信息,填寫註冊碼Q37LN-W8NI-KFSQ-LEY3Y就可以打開文檔.
注意:如果需要更豐富的功能,大家可以去pageoffice官網下載示例代碼直接將samples4文件夾扔到Tomcat的webapps下,啓動Tomcat,瀏覽器訪問http://localhost:8080/Samples4/index.html,查看示例中的下面一個鏈接,直接看samples4文件夾下WordTable文件夾裏面的代碼.
剛開始接觸pageoffice的話,也可以看視頻快速上手http://www.zhuozhengsoft.com/Technical/