在一般的OA項目中經常會遇到在線處理Office文檔的需求,先下載文件,編輯保存后再選擇文件上傳的方式太過原始,在如今早已是Office Online的時代,沒有用戶能接受這種蹩腳的操作方式。
雖然微軟公司也是Office Online的主要推手,通過使用Office 365免費的Office Online應用就可以一起創建、共享更多內容、實現協作處理 Word 文檔等更多目標,但是微軟的Office Online是一個對內封閉的系統,賬號使用的是微軟自己官方的用戶賬號,文件數據也是交由微軟服務器存儲,不提供對文檔處理流程和內容控制的開發接口,所以目前在OA項目的開發中,在線處理Word文件的主流實現方式還是使用Word控件(也有稱作Office控件的),但本質上這些控件是瀏覽器頁面中的控件,與視頻網站的flash控件使用相同的開發技術。
目前市面上支持在線編輯文檔的word插件有很多,而且還有某些很多年前就開始免費的插件。由於插件技術自身的復雜性和近年來操作系統、瀏覽器環境、Office版本的劇烈變化等因素影響,免費插件早已慘遭淘汰,在付費的插件中比較常用的就是PageOffice了,PageOffice封裝了服務器端的Java編程對象,控制客戶端word控件的表現,總的來說接口還是簡單易用的,比如說在線打開一個word文件,后台只需要下面幾行代碼:
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); poCtrl1.setServerPage("poserver.zz"); poCtrl1.setSaveFilePage("savefile.jsp");// 處理文件保存工作 poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "張三");//打開文件
而在頁面中需要出現Word界面的位置插入getHtmlCode方法返回的html代碼即可。
String htmlCode = poCtrl1.getHtmlCode("PageOfficeCtrl1");
PageOffice最新版本提供了兼容所有瀏覽器的解決方案,在支持office文件在線編輯的基礎上還提供了痕跡保留、動態填充、合並文件、提取文檔中數據等功能,總的來說還是一個不錯的選擇。