java調用數據庫:java操作excel框架

java-excel-utils是JAVA操作 Excel 導入導出的工具類,目的是簡化邏輯操作、可拓展 Excel 導入導出配置。

精簡的 Excel 導入導出工具 java-excel-utils

功能:

  1. 導入Excel文件,支持配置時間、小數點類型(支持單/多sheet)
  2. 瀏覽器導出Excel文件、模板文件(支持單/多sheet)
  3. 指定路徑生成Excel文件(支持單/多sheet)
  4. 樣式自定義,行、列、某個單元格(支持單/多sheet)
  5. 固定表頭(支持單/多sheet)
  6. 下拉列表值(支持單/多sheet)
  7. 合併單元格、列寬、標題(支持單/多sheet)

教程文檔:
https://github.com/andyczy/czy-nexus-commons-utils/blob/master/README-Andyczy.md

一、導出配置。

設置列寬舉例:

HashMap mapColumnWidth = new HashMap<>();
HashMap mapColumn = new HashMap<>();
//自定義列寬
mapColumn.put(0, 3); //第一列、寬度為3
mapColumn.put(1, 20); //有人會問寬度3是多寬?兩個中文剛剛好,設置序號的大小 
mapColumn.put(2, 15); //樣式多調就好了,沒有什麼事就一下次弄好的,而且是美觀上。
mapColumnWidth.put(1, mapColumn); //第一個單元格列寬

設置表頭舉例:

HashMap setPaneMap = new HashMap();
setPaneMap.put(1, 3); //第一個表格、第三行開始固定表頭

設置數據舉例:(假設數據)

List> dataLists = new ArrayList<>(); //多表格數據

導出表格sheet名稱:

String[] sheetNameList = new String[]{"今日交易記錄","今日交易明細"}; //兩個表格、可多個

方式一:導出使用函數
ExcelUtils.exportForExcelsOptimize() 和 LocalExcelUtils.exportForExcelsOptimize()

 //【推薦使用該方式】【建議大數據量下不要過多設置樣式】
 
 ExcelUtils excelUtils = ExcelUtils.initialization();
 // 必填項--導出數據(參數請看下面的格式)
 excelUtils.setDataLists(dataLists); 
 // 必填項--sheet名稱(如果是多表格導出、sheetName也要是多個值!)
 excelUtils.setSheetName(sheetNameList);
 // 文件名稱(可為空,默認是:sheet 第一個名稱)
 excelUtils.setFileName(excelName);
 
 // web項目response響應輸出流:必須填 【ExcelUtils 對象】
 excelUtils.setResponse(response);
 
 // 輸出本地【LocalExcelUtils 對象】
 // excelUtils.setFilePath("F://test.xlsx");
 // 每個表格的大標題(可為空)
 excelUtils.setLabelName(labelName);
 // 自定義:固定表頭(可為空)
 excelUtils.setPaneMap(setPaneMap);
 // 自定義:單元格合併(可為空)
 excelUtils.setRegionMap(regionMap);
 
 // 自定義:對每個單元格自定義列寬(可為空)
 excelUtils.setMapColumnWidth(mapColumnWidth);
 // 自定義:某一行樣式(可為空)
 excelUtils.setRowStyles(stylesRow);
 // 自定義:某一列樣式(可為空)
 excelUtils.setColumnStyles(columnStyles);
 // 自定義:每一個單元格樣式(可為空)
 excelUtils.setStyles(styles);
 
 // 自定義:對每個單元格自定義下拉列表(可為空)
 excelUtils.setDropDownMap(dropDownMap);
 // 自定義:忽略邊框(可為空:默認是有邊框)
 excelUtils.setNotBorderMap(notBorderMap); 
 
 // 執行導出
 excelUtils.exportForExcelsOptimize();

方式三:導出函數
ExcelUtils.exportForExcelsNoStyle() 和 LocalExcelUtils.exportForExcelsNoStyle()

無樣式(行、列、單元格樣式)推薦使用這個函數、樣式設置過多會影響速度

導入使用函數:
ExcelUtils.importForExcelData(……) 和 LocalExcelUtils.importForExcelData(……)

 * 獲取多單元數據 
 * 自定義:多單元從第幾行開始獲取數據【看本文最底下參數說明】 
 * 自定義:多單元根據那些列為空來忽略行數據【看本文最底下參數說明】

ExcelUtils 對象與 LocalExcelUtils 區別。

ExcelUtils: web響應有 response
LocalExcelUtils:本地輸出沒 response

Test 測試【新增本地測試】

方式四:導出函數 ExcelUtils.exportForExcel(……) 過期註解

 * 可提供模板下載 
 * 自定義下拉列表:對每個單元格自定義下拉列表 
 * 自定義列寬:對每個單元格自定義列寬 
 * 自定義樣式:對每個單元格自定義樣式 
 * 自定義樣式:單元格自定義某一列或者某一行樣式 
 * 自定義單元格合併:對每個單元格合併 
 * 自定義:每個表格的大標題 
 * 自定義:對每個單元格固定表頭

二、導入配置。

有的人會問了,為什麼這個導入沒有轉換成對象呢?我是覺得不好用,因為導入導出都是公用的,而且都是多表格,也沒必要轉換也有空拿到值。

9、導入配置:(第幾行開始獲取數據) 參數 indexMap

 參數說明:多單元從第幾行開始獲取數據,默認從第二行開始獲取(可為空)
 HashMap hashMapIndex = new HashMap();
 hashMapIndex.put(1,3); // 第一個表格從第三行開始獲取

10、導入配置:(列為空來忽略行數據) 參數 continueRowMap

 參數說明:多單元根據那些列為空來忽略行數據(可為空)
 HashMap mapContinueRow = new HashMap();
 mapContinueRow.put(1,new Integer[]{1, 3}); // 第一個表格第1、3列為空就忽略這行數據

11、導入時間格式(默認:yyyy-MM-dd)、導入數字保留的小數點(默認:#.###### 六位)

 ExcelUtils excelUtils = ExcelUtils.initialization();
 excelUtils.setNumeralFormat("#.####"); // (可為空)期望保留小數的位數(#.####)這樣保留四位。
 // (可為空) (poi 只接受無中文的日期格式、如果你想轉換別的格式,這個參數要和導入表中日期格式類似,如表格中為:2019年02月14日 12時12分)。
 excelUtils.setDateFormatStr("yyyy年MM月dd日 HH時mm分"); 
 excelUtils.setExpectDateFormatStr("yyyy-MM-dd HH-mm"); // (可為空、默認的值是:dateFormatStr 參數值) 期望轉換後的日期格式。
 // 執行導入函數 ExcelUtils.importForExcelData()

導入獲取數據:(支持多表格數據)

for(........){ // 偽代碼
 String accountNo = hashMapList.get(j).get("0"); // 獲取到Excel表格中第一列數據
 // 多表格數據、想怎麼處理怎麼處理,這就是不想轉成對象的原因
}

POM Maven 引入依賴:(推薦使用最新版本)

com.github.andyczy

java-excel-utils

4.0

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/222949.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:13
下一篇 2024-12-09 14:13

相關推薦

發表回復

登錄後才能評論