Java对象和Excel转换工具XXL-EXCE

《Java对象和Excel转换工具XXL-EXCEL》

一、简介

1.1 概述

XXL-EXCEL 是在 Java 对象和 Excel 文档之间进行转换的迅速而灵活的工具。

一行代码完成Java对象和Excel之间的转换。

1.2 特性


  • 1、Excel导出:支持Java对象装换为Excel,并且支持File、字节数组、Workbook等多种导出方式;
  • 2、Excel导入:支持Excel转换为Java对象,并且支持File、InputStream、文件路径、Workbook等多种导入方式;

1.4 下载

文档地址
源码仓库地址
源码仓库地址Release Download
https://github.com/xuxueli/xxl-excelDownload
https://gitee.com/xuxueli0323/xxl-excelDownload
技术交流

1.5 环境

  • JDK:1.7+

二、快速入门

2.1 引入maven依赖

<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-excel-core/ -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-excel</artifactId>
    <version>1.0.0</version>
</dependency>

2.2 定义Java对象

@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导出:Object 转换为 Excel

// 参考测试代码:com.xuxueli.poi.excel.test.Test

/**
 * Excel导出:Object 转换为 Excel
 */
ExcelExportUtil.exportToFile(shopDTOList, filePath);

2.4 Excel导入:Excel 转换为 Object

// 参考测试代码:com.xuxueli.poi.excel.test.Test

/**
 * Excel导入:Excel 转换为 Object
  */
List<Object> list = ExcelImportUtil.importExcel(ShopDTO.class, filePath);

三、总体设计

3.1 功能定位

XXL-EXCEL 是在 Java 对象和 Excel 文档之间进行转换的迅速而灵活的工具。

借助 XXL-EXCEL,一个Java类对象可以完整描述一张Excel表,XXL-EXCEL 做的事情就是把Java对象映射成Excel文件,同时保证性能和稳定。

3.2 Java 对象 和 Excel映射关系

ExcelJava 对象
SheetJava对象列表
表头Sheet首行Java对象Field
数据Sheet一行记录Java对象列表中一个元素

3.3 核心注解:ExcelSheet

功能:描述Sheet信息,注解添加在待转换为Excel的Java对象类上,可选属性如下。

ExcelSheet说明
name表/Sheet名称
headColor表头/Sheet首行的颜色

3.4 核心注解:ExcelField

功能:描述Sheet的列信息,注解添加在待转换为Excel的Java对象类的字段上,可选属性如下。

ExcelField说明
name属性/列名称

四、版本更新日志

版本 V1.0.0,新特性[2017-09-13]


  • 1、Excel导出:支持Java对象装换为Excel,并且支持File、字节数组、Workbook等多种导出方式;
  • 2、Excel导入:支持Excel转换为Java对象,并且支持File、InputStream、文件路径、Workbook等多种导入方式;

版本 V1.1.0,新特性[规划中]


  • 1、字段支持Date类型。至此,已经支持全部基础数据类型。
  • 2、Java转换Excel时,字段类型改为从Field上读取,避免Value为空时空指针问题。
  • 3、升级POI至3.17版本;
  • 4、支持设置Field宽度;如果不指定列宽,将会自适应调整宽度;
  • 5、Excel导出:多Sheet支持;Excel导入:根据 “@ExcelSheet.name” 注解值选中一个Sheet导入;

TODO LIST


  • 1、单个Excel多Sheet导出导出;
  • 2、列合并导入导出;
  • 3、行合并导入导出;
  • 4、HSSFWorkbook=2003/xls、XSSFWorkbook=2007/xlsx 兼容支持;
  • 5、流式导入:多批次导入数据;
  • 7、流式导出:分页方式导出数据;
  • 6、单表行数限制:2003/xls=65536,2007/xlsx=1048576;行数限制内进行性能测试和优化;
  • 8、排序的字段,对时间等其他类型的处理。
  • 9、Java已经支持全基础数据类型导入导出,但是Excel仅支持STRING类型CELL,需要字段属性支持定义CELL类型;
  • 10、支持空数据,导入导出。
  • 11、同一个单元格,横向、竖向拆分多个单元格;List属性;

五、其他

5.1 项目贡献

欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。

5.2 用户接入登记

更多接入的公司,欢迎在 登记地址 登记,登记仅仅为了产品推广。

5.3 开源协议和版权

产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。


  • Licensed under the GNU General Public License (GPL) v3.
  • Copyright (c) 2015-present, xuxueli.



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值