文章插圖

文章插圖
java-excel-utils是JAVA操作 Excel 導入導出的工具類,目的是簡化邏輯操作、可拓展 Excel 導入導出配置 。
導入Excel文件,支持配置時間、小數點類型(支持單/多sheet)瀏覽器導出Excel文件、模板文件(支持單/多sheet)指定路徑生成Excel文件(支持單/多sheet)樣式自定義,行、列、某個單元格(支持單/多sheet)固定表頭(支持單/多sheet)下拉列表值(支持單/多sheet)合并單元格、列寬、標題(支持單/多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); //第一列、寬度為3mapColumn.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響應有 responseLocalExcelUtils:本地輸出沒 responseTest 測試【新增本地測試】
方式四:導出函數 ExcelUtils.exportForExcel(……) 過期注解
* 可提供模板下載* 自定義下拉列表:對每個單元格自定義下拉列表* 自定義列寬:對每個單元格自定義列寬* 自定義樣式:對每個單元格自定義樣式* 自定義樣式:單元格自定義某一列或者某一行樣式* 自定義單元格合并:對每個單元格合并* 自定義:每個表格的大標題* 自定義:對每個單元格固定表頭二、導入配置 。
【java excel框架 java實現excel】有的人會問了,為什么這個導入沒有轉換成對象呢?我是覺得不好用,因為導入導出都是公用的,而且都是多表格,也沒必要轉換也有空拿到值 。
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
- android注解的原理 android注解框架
- Excel怎么設置密碼保護 excel怎么設置保護密碼怎么設置
- 如何將中國統計年鑒中的數據導出 中國統計年鑒數據怎么導出到excel表格
- easypoi讀取合并單元格 easyexcel導入合并單元格
- java集成kettle kettle組件的使用
- JAVA框架是什么 java框架到底是什么
- android四大框架 android開源框架有哪些
- 阿里巴巴java認證考試 阿里巴巴java開發規范
- java獲取時間的年月日 java獲取日期的年月
- 破解加密的excel文件 excel如何破解加密文件
