導(dǎo)入excel文件處理流程節(jié)點的解決方案
在沒用管理系統(tǒng)的時候,很多企業(yè)都會將一些生產(chǎn)或流水線操作的數(shù)據(jù)保存在excel文件中,按名稱或按sheet頁形成多份excel的表格數(shù)據(jù)。
當(dāng)運用了工作流管理系統(tǒng)后,這些生產(chǎn)或流水線的操作都會記錄成流程的節(jié)點,過程需要記錄的數(shù)據(jù),也會應(yīng)用到管理系統(tǒng)中。通常是建立數(shù)據(jù)庫,建立數(shù)據(jù)庫表來存儲這些記錄。
原來記錄在紙質(zhì)或excel文件中的數(shù)據(jù),就需要通過工作流管理系統(tǒng),執(zhí)行流程的節(jié)點,打開節(jié)點上的表單界面,錄入這些數(shù)據(jù),并保存到數(shù)據(jù)庫表中。
這樣企業(yè)用戶在操作習(xí)慣上會有些變化,原來存excel文件的,現(xiàn)在需要通過表單界面來錄入。
用戶為了更方便自己,會提出,我們還是按原來的方式,記錄在excel文件中,或者說,我們記錄了excel文件的,能不能選擇excel文件,上傳一下,然后再從流程的表單界面中展現(xiàn)出這些數(shù)據(jù),并可編輯和維護(hù),然后繼續(xù)流程的流轉(zhuǎn)。
為了適應(yīng)這種功能,我們就必須在流程節(jié)點的表單中加上上傳excel文件的功能。
在我們eform自定義表單中,有上傳附件的控件,但是和這種需求稍有區(qū)別:eform上傳附件的控件,文件會上傳到web服務(wù)器的目錄中,不會打開文件將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫表。 其實打開excel文件,將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫表,這個要用自定義代碼來實現(xiàn)更方便。
下面是實現(xiàn)這個需求的過程:
在流程節(jié)點表單中加上上傳附件的功能按鈕,點擊后模態(tài)打開上傳附件的選擇頁面。
選擇需要上傳的附件,點擊上傳,上傳附件的頁面是用的基本的 type=file的標(biāo)準(zhǔn)控件。action指向后臺的類,當(dāng)選擇好文件,點擊上傳后,后臺類截獲到上傳的文件流。
是j2ee的工程,就利用poi包,分析excel文件的行,列,單元格,取出數(shù)據(jù),將數(shù)據(jù)拼成insert into 的sql語句,將數(shù)據(jù)寫入數(shù)據(jù)庫表。
是dotnet的工程,就利用分析excel文件的dll,分析文件的行、列、單元格,將數(shù)據(jù)拼成insert into 語句,寫入數(shù)據(jù)庫表。
上傳完成后,關(guān)閉上傳頁面,返回到流程節(jié)點表單錄入界面,并且刷新頁面,頁面表格中顯示的,就是剛才excel文件中上傳的內(nèi)容。
用戶可以編輯修改表格中的內(nèi)容,點擊 執(zhí)行后,再次提交修改后的記錄,并執(zhí)行流程的流轉(zhuǎn)。
因為后臺分析excel文件,是取的輸入流直接分析的,因此web服務(wù)器中沒有存直接的文件。
將上傳附件按鈕功能 封裝成一個共用的js函數(shù),打開特定的上傳附件的頁面。在上傳附件的頁面中接收流程實例id, 標(biāo)識存入那張業(yè)務(wù)表的參數(shù)。
每個excel文件的格式必須固定,每列需要和數(shù)據(jù)庫表的字段綁定。
這樣在流程節(jié)點中掛接的業(yè)務(wù)表單中,需要上傳附件功能的,就定義上傳附件的按鈕,調(diào)用封裝好的js函數(shù),并按照標(biāo)識寫入數(shù)據(jù)庫表。這樣做到在流程節(jié)點的表單中快速的集成導(dǎo)入excel文件的功能。
原文鏈接:http://www.cnblogs.com/webreport/archive/2012/01/18/2325307.html
【編輯推薦】
- Java回調(diào)函數(shù)的理解
- Java路線圖:甲骨文的兩年計劃
- Java 8將支持無符號整型
- Java Swing編程:JTable表格
- 深入研究Java虛擬機(jī)的類加載機(jī)制