基於SpringBoot+POI實現的excel匯入匯出(適配版)(前言)
介紹
專案中使用到了excel做匯入和匯出,網上查詢了一些資料,沒有找到一些合適的或者完成的,於是乎,利用空閒時間開發出一套完整的excel匯入匯出。
整個功能將會在本文釋出後的八期內容裡完成更新。會將匯入匯出的核心程式碼貼出來供大家參考,有些不足的地方,可供大家共同探討優化。
因整體更新時間較長,內部部分程式碼比較陳舊。近期正在對內部功能程式碼進行優化升級。優化後的程式碼會以github等方式公開。
匯入功能說明
目前最新的版本中匯入支援以下功能:
1.可以生成自定義資料模板
2.可以生成帶下拉資料格式模板(固定資料使用)
3.定義匯入樣式
4.自定義匯入資料處理接收引數物件
5.多物件接收資料轉換
6.固定資料,字典等格式資料翻譯
7.引數轉資料庫主鍵翻譯
8.自定義讀取sheet
9.多執行緒讀取excel資料(待實現)
10.通過註解方式自定義匯入表頭,表頭排序
11.支援本功能匯出的資料不做操作直接匯入
匯入操作流程
匯出功能說明
1.支援匯出自定義表頭,表格樣式
2.支援資料字典翻譯
3.支援自定義資料合計計算
4.支援金額格式轉換(千位分隔)
5.多執行緒匯出(待實現)
6.支援匯出複雜型別表頭(目前僅支援二級合併表頭)
7.支援自定義單元格合併
匯出執行流程
匯出即匯入
匯入即匯入說明
匯出的資料可以在不做任何修改的情況下即可匯入到資料庫中
工具效能測試結果展示
單sheet條數| 記憶體開始(GB|) |記憶體結束(GB)| 消耗(MB)| 時間(毫秒) |備註|
50000| |5.51 |6.26 |768 19402 |無宕機|
10000| |5.48| 6.12| 655| 28905 |無宕機|
5000| 5.52| |6.04| 532| 39821| 無宕機|
2000| 5.38| 5.90 |491| 85137| 無宕機|
1000| 5.50| 5.90| 409| 1335175| 無宕機|
500| 5.64| 5.87| 235| 25652 |無宕機
資料說明
以上表格資料表示使用該工具後大資料量分段寫資料的效能
記憶體和時間的消耗均包含資料查詢時間和寫資料到資料庫時間
資料複雜程度:中等
測試資料總條數:231064
測試結果跟使用的環境有一定關係:本人測試使用的環境是win7+8G執行,jdk1.8
使用單執行緒測試
後期還會優化多執行緒版本,敬請期待
寫在最後
本文對匯入和匯出的整體功能做了個簡單的說明,本期後的八期內容將分開對以上內容的核心程式碼進行分析,主要內容分佈如下:
1. POI和HSSFWorkbook介紹(9.5)
2. 匯入實現的基本邏輯程式碼分析(9.12)
3. 匯入生成檔案固定資料程式碼分析(9.19)
4.匯入資料物件接收資料處理(9.26)
5.匯出寫資料基本邏輯程式碼分析(10.10)
6.匯出動態處理計算和格式邏輯程式碼分析(10.17)
7.自定義表頭方式(10.24)
8.匯入匯出生成檔案流返回(10.31)
自本文釋出日期起開始更新,每週更新一期,每週日晚更新,歡迎圍觀。
好好學習,天天向上!