基于SSH框架的Excel文檔在線批量寫入方法
【專利摘要】本發(fā)明公開了一種基于SSH框架的Excel文檔在線批量寫入方法,在B/S架構(gòu)下實現(xiàn),包括以下步驟:步驟一、在客戶端的瀏覽器中填寫Web表單并提交;步驟二、根據(jù)提交的表單內(nèi)容在數(shù)據(jù)庫中創(chuàng)建新的數(shù)據(jù)表;步驟三、通過POI的HSSF接口創(chuàng)建Excel文檔;步驟四、完成對Excel文檔的瀏覽器閱讀、編輯和保存操作;步驟五、將Excel文檔的數(shù)據(jù)部分保存到數(shù)據(jù)庫中。本發(fā)明解決了根據(jù)需求在線創(chuàng)建Excel文檔并將更新的數(shù)據(jù)同步到數(shù)據(jù)庫中的問題,實現(xiàn)了Excel文檔與瀏覽器的集成控制。
【專利說明】基于SSH框架的Excel文檔在線批量寫入方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于SSH框架的Excel文檔在線批量寫入方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,越來越多的信息以Excel文檔的方式存儲,并通過網(wǎng)絡(luò)獲得應(yīng)用。在大中小企業(yè)的內(nèi)部,Excel文檔主要存儲于基于Web的各種辦公管理系統(tǒng)及數(shù)據(jù)管理系統(tǒng)中。在業(yè)務(wù)處理的過程中,如何方便、快捷地根據(jù)需求在客戶端瀏覽器中創(chuàng)建Excel文檔,不僅將數(shù)據(jù)在Excel文檔中加載展現(xiàn)給用戶,并能夠快速地進行文檔的編輯,同時能夠?qū)⒏碌臄?shù)據(jù)同步到數(shù)據(jù)庫中,成為了一項重要的研宄內(nèi)容。
[0003]目前一般采用的方法有以下兩種,一是將Excel文檔保存到Web服務(wù)器的指定目錄下,用戶在使用時首先將文檔手工下載到本地,然后利用MS Office軟件在本地完成編輯保存操作,最后將編輯好的文檔再上傳到Web服務(wù)器上去。二是以瀏覽器網(wǎng)頁的形式將Excel文檔中的數(shù)據(jù)讀取到動態(tài)網(wǎng)頁中,在文檔上傳到Web服務(wù)器后,利用瀏覽器對讀取到網(wǎng)頁中的數(shù)據(jù)進行在線編輯操作,并將數(shù)據(jù)同步到數(shù)據(jù)庫中。但是,方法一雖然可以完成Excel文檔的編輯和上傳操作,但是文檔直接保存到目錄下安全性差,沒有實現(xiàn)Excel文檔在瀏覽器中的在線閱讀編輯功能,并且沒有將文檔中具體數(shù)據(jù)同步到數(shù)據(jù)庫的表中。方法二雖然能夠?qū)崿F(xiàn)將數(shù)據(jù)同步到數(shù)據(jù)庫中的操作,但是原有的Excel文檔同樣沒有直接在瀏覽器中利用,容易造成原有文件中的信息丟失,難以實現(xiàn)Excel文檔與瀏覽器的在線集成控制。
【發(fā)明內(nèi)容】
[0004]為了解決現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于SSH框架的Excel文檔在線批量寫入方法,不僅能夠根據(jù)需求在線創(chuàng)建Excel文檔并將更新的數(shù)據(jù)同步到數(shù)據(jù)庫中,并且可以實現(xiàn)Excel文檔與瀏覽器的集成控制。
[0005]本發(fā)明為解決其技術(shù)問題所采用的技術(shù)方案是:提供了一種基于SSH框架的Excel文檔在線批量寫入方法,在B/S架構(gòu)下實現(xiàn),具體包括以下步驟:
[0006](1)在客戶端的瀏覽器中填寫Web表單并提交;所述Web表單的信息包括表名和列名;
[0007](2)對表名進行重名判斷,并對列名進行字段長度判斷,若Web服務(wù)器的數(shù)據(jù)庫中不存在相同的表名并且列名的字段長度未超出設(shè)置范圍,則設(shè)置相應(yīng)字段,插入記錄,在數(shù)據(jù)庫中創(chuàng)建新的數(shù)據(jù)表;所述數(shù)據(jù)表與Web表單具有相同的表名和列名;
[0008](3)解析數(shù)據(jù)表的表頭及數(shù)據(jù),通過P0I的HSSF接口創(chuàng)建Excel文檔;所述Excel文檔包括表名、列名、表頭和數(shù)據(jù);
[0009](4)完成對Excel文檔的瀏覽器閱讀、編輯和保存操作:
[0010](4-1)通過客戶端向Web服務(wù)器發(fā)出獲取Excel文檔請求;
[0011](4-2) Web服務(wù)器響應(yīng)獲取Excel文檔請求,將Excel文檔從數(shù)據(jù)庫中取出并傳到客戶端;
[0012](4-3)利用基于客戶端的ActiveX控件,通過JavaScript對ActiveDocument屬性的訪問,將Excel文檔在客戶端的瀏覽器中打開以供編輯,編輯時產(chǎn)生的Excel文檔的數(shù)據(jù)部分;
[0013](4-4) ActiveX控件檢測到用戶保存并關(guān)閉文檔事件后,ActiveX控件的HTTP接口將Excel文檔的數(shù)據(jù)部分發(fā)送到預(yù)設(shè)的數(shù)據(jù)處理頁面,完成Excel文檔的存檔,并將編輯后的Excel文檔傳回Web服務(wù)器;
[0014](5)將Excel文檔的數(shù)據(jù)部分保存到數(shù)據(jù)庫中:
[0015](5-1)定義一個泛型類用于存放Excel文檔中的工作表記錄;
[0016](5-2)用Java中的for循環(huán)語句按照表名在數(shù)據(jù)庫中查找編輯后的Excel文檔,讀取其表名、列名和數(shù)據(jù)部分,然后利用循環(huán)算法解析Excel文檔中的數(shù)據(jù)部分;
[0017](5-3)將解析后的數(shù)據(jù)部分存儲到數(shù)據(jù)庫的數(shù)據(jù)表中。
[0018]步驟(1)中,在互聯(lián)網(wǎng)請求或響應(yīng)的模式下,利用IE瀏覽器對作為Web服務(wù)器的Tomcat已經(jīng)發(fā)布的系統(tǒng)工程網(wǎng)頁進行Web訪問,在瀏覽器中在線填寫表單信息,并通過SSH框架下的Act1n類提交到后臺Web服務(wù)器。
[0019]本發(fā)明基于其技術(shù)方案所具有的有益效果在于:
[0020](1)本發(fā)明基于B/S架構(gòu)和SSH開發(fā)框架,利用互聯(lián)網(wǎng)作為信息載體,解決現(xiàn)有Excel文檔數(shù)據(jù)上傳方法缺乏通用性,對系統(tǒng)環(huán)境依賴較強等問題;
[0021](2)本發(fā)明采用基于客戶端的ActiveX控件,通過JavaScr1pt對控件的調(diào)用來實現(xiàn)Excel文檔在瀏覽器中打開和編輯功能,使得文檔的控制方便,用戶操作簡潔直觀,避免了采用其他方法時交互安全性差、并發(fā)處理難以實現(xiàn)、信息丟失和客戶端操作復(fù)雜的問題;
[0022](3)本發(fā)明有機地將傳統(tǒng)文件上傳方法和在線數(shù)據(jù)上傳方法結(jié)合在一起,不僅能夠根據(jù)需求在線創(chuàng)建Excel文檔并將更新的數(shù)據(jù)同步到數(shù)據(jù)庫中,并且可以實現(xiàn)Excel文檔與瀏覽器的集成控制。
【專利附圖】
【附圖說明】
[0023]圖1是本發(fā)明的一種基于SSH框架的Excel文檔在線批量寫入方法流程示意圖。
[0024]圖2是SSH架構(gòu)后臺處理流程不意圖。
[0025]圖3是基于客戶端的ActiveX控件架構(gòu)圖。
【具體實施方式】
[0026]下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
[0027]參照圖1,本發(fā)明提供了一種基于SSH框架的Excel文檔在線批量寫入方法,在B/S架構(gòu)下實現(xiàn),具體包括以下步驟:
[0028](1)在互聯(lián)網(wǎng)請求或響應(yīng)的模式下,利用IE瀏覽器對作為Web服務(wù)器的Tomcat已經(jīng)發(fā)布的系統(tǒng)工程網(wǎng)頁進行Web訪問,在瀏覽器中在線填寫表單信息,并通過SSH框架下的Act1n類提交到后臺Web服務(wù)器,所述Web表單的信息包括表名和列名;不同的列名之間可以用“I”或其他分隔符隔開;
[0029](2)對表名進行重名判斷,并對列名進行字段長度判斷,若Web服務(wù)器的數(shù)據(jù)庫中不存在相同的表名并且列名的字段長度未超出設(shè)置范圍,則設(shè)置相應(yīng)字段,插入記錄,在數(shù)據(jù)庫中創(chuàng)建新的數(shù)據(jù)表;所述數(shù)據(jù)表與Web表單具有相同的表名和列名;參照圖2,后臺處理方法的基本業(yè)務(wù)流程是:在表示層中,首先通過JSP頁面中的標(biāo)簽庫、CSS、JS等文件實現(xiàn)界面交互,然后Struts2根據(jù)配置文件(struts-config.xml)將Act1nServlet接收到的Request委派給相應(yīng)的Act1n動作類處理,通過對實體類和數(shù)據(jù)訪問對象類的調(diào)用,完成數(shù)據(jù)操縱和數(shù)據(jù)訪問。在業(yè)務(wù)邏輯層中,管理服務(wù)組件的Spring 1C容器負責(zé)向Act1n提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DA0)組件完成業(yè)務(wù)邏輯。而在數(shù)據(jù)訪問層中,則依賴于Hibernate的0/R映射管理機制和數(shù)據(jù)庫交互,處理DA0組件請求的數(shù)據(jù),并返回處理結(jié)果;
[0030](3)解析數(shù)據(jù)表的表頭及數(shù)據(jù),通過P0I的HSSF接口創(chuàng)建Excel文檔;所述Excel文檔包括表名、列名、表頭和數(shù)據(jù);
[0031](4)參照圖3,完成對Excel文檔的瀏覽器閱讀、編輯和保存操作:
[0032](4-1)通過客戶端向Web服務(wù)器發(fā)出獲取Excel文檔請求;
[0033](4-2) Web服務(wù)器響應(yīng)獲取Excel文檔請求,將Excel文檔從數(shù)據(jù)庫中取出并傳到客戶端;
[0034](4-3)利用基于客戶端的ActiveX控件,通過JavaScript對ActiveDocument屬性的訪問,將Excel文檔在客戶端的瀏覽器中打開以供編輯,編輯時產(chǎn)生的Excel文檔的數(shù)據(jù)部分;
[0035](4-4) ActiveX控件檢測到用戶保存并關(guān)閉文檔事件后,ActiveX控件的HTTP接口將Excel文檔的數(shù)據(jù)部分發(fā)送到預(yù)設(shè)的數(shù)據(jù)處理頁面,完成Excel文檔的存檔,并將編輯后的Excel文檔傳回Web服務(wù)器;
[0036](5)將Excel文檔的數(shù)據(jù)部分保存到數(shù)據(jù)庫中:
[0037](5-1)定義一個泛型類存放Excel文檔中的工作表記錄;
[0038](5-2)用Java中的for循環(huán)語句按照表名在數(shù)據(jù)庫中查找編輯后的Excel文檔,讀取其表名、列名和數(shù)據(jù)部分,然后利用循環(huán)算法解析Excel文檔中的數(shù)據(jù)部分;
[0039](5-3)將解析后的數(shù)據(jù)部分存儲到數(shù)據(jù)庫的數(shù)據(jù)表中。
【權(quán)利要求】
1.一種基于SSH框架的Excel文檔在線批量寫入方法,在B/S架構(gòu)下實現(xiàn),其特征在于具體包括以下步驟: (1)在客戶端的瀏覽器中填寫Web表單并提交;所述Web表單的信息包括表名和列名; (2)對表名進行重名判斷,并對列名進行字段長度判斷,若Web服務(wù)器的數(shù)據(jù)庫中不存在相同的表名并且列名的字段長度未超出設(shè)置范圍,則在數(shù)據(jù)庫中創(chuàng)建新的數(shù)據(jù)表;所述數(shù)據(jù)表與Web表單具有相同的表名和列名; (3)解析數(shù)據(jù)表的列名,通過POI的HSSF接口創(chuàng)建Excel文檔;所述Excel文檔包括表名和列名; (4)完成對Excel文檔的瀏覽器閱讀、編輯和保存操作: (4-1)通過客戶端向Web服務(wù)器發(fā)出獲取Excel文檔請求; (4-2) Web服務(wù)器響應(yīng)獲取Excel文檔請求,將Excel文檔從數(shù)據(jù)庫中取出并傳到客戶端; (4-3)利用基于客戶端的ActiveX控件,通過JavaScript對ActiveDocument屬性的訪問,將Excel文檔在客戶端的瀏覽器中打開以供編輯,編輯時產(chǎn)生的Excel文檔的數(shù)據(jù)部分; (4-4)ActiveX控件檢測到用戶保存并關(guān)閉文檔事件后,ActiveX控件的HTTP接口將Excel文檔的數(shù)據(jù)部分發(fā)送到預(yù)設(shè)的數(shù)據(jù)處理頁面,完成Excel文檔的存檔,并將編輯后的Excel文檔傳回Web服務(wù)器; (5)將Excel文檔的數(shù)據(jù)部分保存到數(shù)據(jù)庫中: (5-1)定義一個泛型類用于存放Excel文檔中的工作表記錄; (5-2)用Java中的for循環(huán)語句按照表名在數(shù)據(jù)庫中查找編輯后的Excel文檔,讀取其表名、列名和數(shù)據(jù)部分,然后利用循環(huán)算法解析Excel文檔中的數(shù)據(jù)部分; (5-3)將解析后的數(shù)據(jù)部分存儲到數(shù)據(jù)庫的數(shù)據(jù)表中。
2.根據(jù)權(quán)利要求1所述的基于SSH框架的Excel文檔在線批量寫入方法,其特征在于:步驟(I)中,在互聯(lián)網(wǎng)請求或響應(yīng)的模式下,利用IE瀏覽器對作為Web服務(wù)器的Tomcat已經(jīng)發(fā)布的系統(tǒng)工程網(wǎng)頁進行Web訪問,在瀏覽器中在線填寫表單信息,并通過SSH框架下的Act1n類提交到后臺Web服務(wù)器。
【文檔編號】G06F17/24GK104504160SQ201510027712
【公開日】2015年4月8日 申請日期:2015年1月20日 優(yōu)先權(quán)日:2015年1月20日
【發(fā)明者】吳敏, 熊永華, 潘文杰, 黃曉茜, 李 浩, 焦春煥 申請人:中國地質(zhì)大學(xué)(武漢)