摘要:一行代碼完成對象和之間的轉(zhuǎn)換。說明屬性列名稱四版本更新日志版本,新特性導(dǎo)出支持對象裝換為,并且支持字節(jié)數(shù)組等多種導(dǎo)出方式導(dǎo)入支持轉(zhuǎn)換為對象,并且支持文件路徑等多種導(dǎo)入方式版本,新特性字段支持類型。
《Java對象和Excel轉(zhuǎn)換工具XXL-EXCEL》
XXL-EXCEL 是一個(gè)靈活的Java對象和Excel文檔相互轉(zhuǎn)換的工具。
一行代碼完成Java對象和Excel之間的轉(zhuǎn)換。
1.2 特性1、Excel導(dǎo)出:支持Java對象裝換為Excel,并且支持File、字節(jié)數(shù)組、Workbook等多種導(dǎo)出方式;
2、Excel導(dǎo)入:支持Excel轉(zhuǎn)換為Java對象,并且支持File、InputStream、文件路徑、Workbook等多種導(dǎo)入方式;
3、全基礎(chǔ)數(shù)據(jù)類型支持:Excel的映射Java對象支持設(shè)置任意基礎(chǔ)數(shù)據(jù)類型,將會自動完整值注入;
4、Field寬度自適應(yīng);
5、多Sheet導(dǎo)出:導(dǎo)出Excel時(shí)支持設(shè)置多張sheet;
6、多Sheet導(dǎo)入:導(dǎo)入Excel時(shí)支持設(shè)置多張sheet,通過 "@ExcelSheet.name" 注解匹配Sheet;
1.4 下載 文檔地址中文文檔
源碼倉庫地址源碼倉庫地址 | Release Download |
---|---|
https://github.com/xuxueli/xxl-excel | Download |
https://gitee.com/xuxueli0323/xxl-excel | Download |
社區(qū)交流
1.5 環(huán)境JDK:1.7+
二、快速入門 2.1 引入maven依賴2.2 定義Java對象com.xuxueli xxl-excel 1.0.0
@ExcelSheet(name = "商戶列表", headColor = HSSFColor.HSSFColorPredefined.LIGHT_GREEN) public class ShopDTO { @ExcelField(name = "商戶ID") private int shopId; @ExcelField(name = "商戶名稱") private String shopName; public ShopDTO() { } public ShopDTO(int shopId, String shopName) { this.shopId = shopId; this.shopName = shopName; } public int getShopId() { return shopId; } public void setShopId(int shopId) { this.shopId = shopId; } public String getShopName() { return shopName; } public void setShopName(String shopName) { this.shopName = shopName; } }2.3 Excel導(dǎo)出:Object 轉(zhuǎn)換為 Excel
// 參考測試代碼:com.xuxueli.poi.excel.test.Test /** * Excel導(dǎo)出:Object 轉(zhuǎn)換為 Excel */ ExcelExportUtil.exportToFile(filePath, shopDTOList);2.4 Excel導(dǎo)入:Excel 轉(zhuǎn)換為 Object
// 參考測試代碼:com.xuxueli.poi.excel.test.Test /** * Excel導(dǎo)入:Excel 轉(zhuǎn)換為 Object */ List三、總體設(shè)計(jì) 3.1 功能定位
XXL-EXCEL 是在 Java 對象和 Excel 文檔之間進(jìn)行轉(zhuǎn)換的迅速而靈活的工具。
借助 XXL-EXCEL,一個(gè)Java類對象可以完整描述一張Excel表,XXL-EXCEL 做的事情就是把Java對象映射成Excel文件,同時(shí)保證性能和穩(wěn)定。
3.2 Java 對象 和 Excel映射關(guān)系-- | Excel | Java 對象 |
---|---|---|
表 | Sheet | Java對象列表 |
表頭 | Sheet首行 | Java對象Field |
數(shù)據(jù) | Sheet一行記錄 | Java對象列表中一個(gè)元素 |
功能:描述Sheet信息,注解添加在待轉(zhuǎn)換為Excel的Java對象類上,可選屬性如下。
ExcelSheet | 說明 |
---|---|
name | 表/Sheet名稱 |
headColor | 表頭/Sheet首行的顏色 |
功能:描述Sheet的列信息,注解添加在待轉(zhuǎn)換為Excel的Java對象類的字段上,可選屬性如下。
ExcelField | 說明 |
---|---|
name | 屬性/列名稱 |
1、Excel導(dǎo)出:支持Java對象裝換為Excel,并且支持File、字節(jié)數(shù)組、Workbook等多種導(dǎo)出方式;
2、Excel導(dǎo)入:支持Excel轉(zhuǎn)換為Java對象,并且支持File、InputStream、文件路徑、Workbook等多種導(dǎo)入方式;
版本 V1.1.0,新特性[2017-12-14]1、字段支持Date類型。至此,已經(jīng)支持全部基礎(chǔ)數(shù)據(jù)類型。
2、Java轉(zhuǎn)換Excel時(shí),字段類型改為從Field上讀取,避免Value為空時(shí)空指針問題。
3、升級POI至3.17版本;
4、支持設(shè)置Field寬度;如果不指定列寬,將會自適應(yīng)調(diào)整寬度;
5、多Sheet導(dǎo)出:導(dǎo)出Excel時(shí)支持設(shè)置多張sheet;
6、多Sheet導(dǎo)入:導(dǎo)入Excel時(shí)支持設(shè)置多張sheet,通過 "@ExcelSheet.name" 注解匹配Sheet;
版本 V1.1.1,新特性[迭代中] TODO LIST1、單個(gè)Excel多Sheet導(dǎo)出導(dǎo)出;
2、列合并導(dǎo)入導(dǎo)出;
3、行合并導(dǎo)入導(dǎo)出;
4、HSSFWorkbook=2003/xls、XSSFWorkbook=2007/xlsx 兼容支持;
5、流式導(dǎo)入:多批次導(dǎo)入數(shù)據(jù);
7、流式導(dǎo)出:分頁方式導(dǎo)出數(shù)據(jù);
6、單表行數(shù)限制:2003/xls=65536,2007/xlsx=1048576;行數(shù)限制內(nèi)進(jìn)行性能測試和優(yōu)化;
8、排序的字段,對時(shí)間等其他類型的處理。
9、Java已經(jīng)支持全基礎(chǔ)數(shù)據(jù)類型導(dǎo)入導(dǎo)出,但是Excel僅支持STRING類型CELL,需要字段屬性支持定義CELL類型;
10、支持空數(shù)據(jù),導(dǎo)入導(dǎo)出。
11、同一個(gè)單元格,橫向、豎向拆分多個(gè)單元格;List屬性;
12、Excel導(dǎo)入多Sheet支持;
五、其他 5.1 項(xiàng)目貢獻(xiàn)歡迎參與項(xiàng)目貢獻(xiàn)!比如提交PR修復(fù)一個(gè)bug,或者新建 Issue 討論新特性或者變更。
5.2 用戶接入登記更多接入的公司,歡迎在 登記地址 登記,登記僅僅為了產(chǎn)品推廣。
5.3 開源協(xié)議和版權(quán)產(chǎn)品開源免費(fèi),并且將持續(xù)提供免費(fèi)的社區(qū)技術(shù)支持。個(gè)人或企業(yè)內(nèi)部可自由的接入和使用。
Licensed under the GNU General Public License (GPL) v3.
Copyright (c) 2015-present, xuxueli.
捐贈無論金額多少都足夠表達(dá)您這份心意,非常感謝 :) 前往捐贈
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70855.html
摘要:新特性支持設(shè)置水平位置,如居中居左底層優(yōu)化,預(yù)約多操作支持空導(dǎo)入拋錯(cuò)問題修復(fù)數(shù)據(jù)類型識別優(yōu)化,全類型支持導(dǎo)入時(shí)支持空導(dǎo)出時(shí)限制非空,否則無法進(jìn)行類型推導(dǎo)。概述是一個(gè)靈活的對象和文檔相互轉(zhuǎn)換的工具。一行代碼完成對象和之間的轉(zhuǎn)換。 v1.1.1 新特性 1、支持設(shè)置Field水平位置,如居中、居左; 2、底層API優(yōu)化,預(yù)約多Sheet操作支持; 3、空Cell導(dǎo)入拋錯(cuò)問題修復(fù); 4、C...
摘要:更多精彩博文,歡迎訪問我的個(gè)人博客簡介是一個(gè)支持對象與目前僅互相轉(zhuǎn)換的工具包。 更多精彩博文,歡迎訪問我的個(gè)人博客 Jxcel簡介 Jxcel是一個(gè)支持Java對象與Excel(目前僅xlsx、xls)互相轉(zhuǎn)換的工具包。 項(xiàng)目地址:https://github.com/jptangchin... 特性說明 Java對象輸出為Excel文件或Workbook對象 語義化轉(zhuǎn)換,將數(shù)字類...
摘要:消費(fèi)之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢并且展現(xiàn)對應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁面的所有的信息到 EXCEL 文件。 需求分析 對于 excel 導(dǎo)出,是一個(gè)很常見的需求。 最常見的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...
摘要:我想能不能像配置文件一樣可配置的導(dǎo)入導(dǎo)出,那樣使用起來就方便許多。配置和使用下面是員工信息模型。支持多種映射,使用英文逗號進(jìn)行分割。導(dǎo)入時(shí)它會以分割前面的作為導(dǎo)入時(shí)使用的值,后面的作為導(dǎo)出時(shí)使用的值后面值進(jìn)行逆推導(dǎo)出時(shí)同理。 1.前言 在工作時(shí),遇到過這樣的需求,需要靈活的對工單進(jìn)行導(dǎo)入或?qū)С觯郧白约阂沧鲞^,但使用不靈活繁瑣。我想能不能像配置文件一樣可配置的導(dǎo)入導(dǎo)出,那樣使用起來就方...
閱讀 3286·2021-09-30 09:47
閱讀 2302·2021-09-10 10:51
閱讀 1906·2021-09-08 09:36
閱讀 2935·2019-08-30 12:56
閱讀 3042·2019-08-30 11:16
閱讀 2631·2019-08-29 16:40
閱讀 3001·2019-08-29 15:25
閱讀 1640·2019-08-29 11:02