Java通過Poi的開發Excel匯入匯出和下載功能
原文連結:http://www.zjhuiwan.cn/toDetail?articleId=1812131133133410000
最近有用到Excel的下載、匯入、匯出功能。提供一個Excel模板給使用者下載,使用者根據規範填寫模板然後再匯入Excel資料,儲存到資料庫,也可匯出類表資料為Excel。因為有時候頁面新增功太麻煩,就做成這樣的Excel批量匯入。
Excel的下載
這專案用的是spring+Struts2+mybatis。
需要的jar包
1 2 3 4 5 6 |
|
有兩種方式
第一種、把Excel模板放在專案目錄,提供下載。(這種比較方便)
Excel的路徑:webapp/common/excelModule/downloadModel.xlsx。
前臺程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
js程式碼:
1 2 3 |
|
action程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Struts2配置檔案:
1 2 3 4 5 6 7 8 9 10 |
|
好了,一個簡單的下載功能就完成了。
注意:Struts的配置檔案中的檔名和流要和action的對應。
第二種、自定義生成Excel模板,提供下載。(ExcelUtil工具類程式碼在底下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Excel的匯入
js程式碼:通過ajax,formdata格式提交檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
action程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
|
注意:Excel的驗證根據自己的需求來判斷,驗證無誤的在通過物件儲存到資料庫中。Excel單元格通通為文字格式,不然有問題
遇到過的問題:當Excel最後一列為空時,比如一空有10列,但最後一列為空時拿到了ExcelList長度為9,,折騰了半天無果,就改為了通過第一行標題來獲取列長度,這樣就沒問題了。注意資料還是從第二行開始獲取。還有一個問題就是,當填的值為0等數字時,取到則為0.0,設定了Excel的單元格為文字格式還是沒用,需要設定為強文字格式(選擇單元格點導航欄資料中的分列,然後下一步,下一步,選擇文字,完成即可)。
然後還有就是一定要效驗好資料,不能漏了各種會出現的情況,不然儲存到資料庫出問題就大條了。
Excel的匯入
java程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
|