资讯专栏INFORMATION COLUMN

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

mj / 2581人阅读

摘要:一行代码完成对象和之间的转换。说明属性列名称四版本更新日志版本,新特性导出支持对象装换为,并且支持字节数组等多种导出方式导入支持转换为对象,并且支持文件路径等多种导入方式版本,新特性字段支持类型。

《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等多种导入方式;

3、全基础数据类型支持:Excel的映射Java对象支持设置任意基础数据类型,将会自动完整值注入;

4、Field宽度自适应;

5、多Sheet导出:导出Excel时支持设置多张sheet;

6、多Sheet导入:导入Excel时支持设置多张sheet,通过 "@ExcelSheet.name" 注解匹配Sheet;

1.4 下载 文档地址

中文文档

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

社区交流

1.5 环境

JDK:1.7+

二、快速入门 2.1 引入maven依赖


    com.xuxueli
    xxl-excel
    1.0.0
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(filePath, shopDTOList);
2.4 Excel导入:Excel 转换为 Object
// 参考测试代码:com.xuxueli.poi.excel.test.Test

/**
 * Excel导入:Excel 转换为 Object
  */
List list = ExcelImportUtil.importExcel(ShopDTO.class, filePath);
三、总体设计
3.1 功能定位

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

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

3.2 Java 对象 和 Excel映射关系
-- Excel Java 对象
Sheet Java对象列表
表头 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,新特性[2017-12-14]

1、字段支持Date类型。至此,已经支持全部基础数据类型。

2、Java转换Excel时,字段类型改为从Field上读取,避免Value为空时空指针问题。

3、升级POI至3.17版本;

4、支持设置Field宽度;如果不指定列宽,将会自适应调整宽度;

5、多Sheet导出:导出Excel时支持设置多张sheet;

6、多Sheet导入:导入Excel时支持设置多张sheet,通过 "@ExcelSheet.name" 注解匹配Sheet;

版本 V1.1.1,新特性[迭代中] 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属性;

12、Excel导入多Sheet支持;

五、其他 5.1 项目贡献

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

5.2 用户接入登记

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

5.3 开源协议和版权

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

Licensed under the GNU General Public License (GPL) v3.

Copyright (c) 2015-present, xuxueli.

捐赠

无论金额多少都足够表达您这份心意,非常感谢 :) 前往捐赠

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70855.html

相关文章

  • XXL-EXCEL v1.1.1 发布,Java对象Excel转换工具

    摘要:新特性支持设置水平位置,如居中居左底层优化,预约多操作支持空导入抛错问题修复数据类型识别优化,全类型支持导入时支持空导出时限制非空,否则无法进行类型推导。概述是一个灵活的对象和文档相互转换的工具。一行代码完成对象和之间的转换。 v1.1.1 新特性 1、支持设置Field水平位置,如居中、居左; 2、底层API优化,预约多Sheet操作支持; 3、空Cell导入抛错问题修复; 4、C...

    刘玉平 评论0 收藏0
  • jxcel - 好用的ExcelJava对象转换工具

    摘要:更多精彩博文,欢迎访问我的个人博客简介是一个支持对象与目前仅互相转换的工具包。 更多精彩博文,欢迎访问我的个人博客 Jxcel简介 Jxcel是一个支持Java对象与Excel(目前仅xlsx、xls)互相转换的工具包。 项目地址:https://github.com/jptangchin... 特性说明 Java对象输出为Excel文件或Workbook对象 语义化转换,将数字类...

    ivan_qhz 评论0 收藏0
  • java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) exce

    摘要:消费之后,多线程处理文件导出,生成文件后上传到等文件服务器。前端直接查询并且展现对应的任务执行列表,去等文件服务器下载文件即可。这客户体验不友好,而且网络传输,系统占用多种问题。拓展阅读导出最佳实践框架 产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件。 需求分析 对于 excel 导出,是一个很常见的需求。 最常见的解决方案就是使用 poi 直接同步导出一个 exc...

    K_B_Z 评论0 收藏0
  • Java Excel导入导出,基于XMLEasy-excel使用

    摘要:我想能不能像配置文件一样可配置的导入导出,那样使用起来就方便许多。配置和使用下面是员工信息模型。支持多种映射,使用英文逗号进行分割。导入时它会以分割前面的作为导入时使用的值,后面的作为导出时使用的值后面值进行逆推导出时同理。 1.前言 在工作时,遇到过这样的需求,需要灵活的对工单进行导入或导出,以前自己也做过,但使用不灵活繁琐。我想能不能像配置文件一样可配置的导入导出,那样使用起来就方...

    13651657101 评论0 收藏0

发表评论

0条评论

mj

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<