jxcel - 好用的Excel与Java对象转换工具

2,577 阅读1分钟

更多精彩博文,欢迎访问我的个人博客


Jxcel简介

Jxcel是一个支持Java对象与Excel(目前仅xlsx、xls)互相转换的工具包。

项目地址:github.com/jptangchina…

特性说明

  • Java对象输出为Excel文件或Workbook对象
  • 语义化转换,将数字类型或布尔类型的值与语义化的值互相转换
  • 生成的Excel文件可以对列进行排序
  • 表头与Java属性精确匹配
  • 支持几乎所有基本数据类型以及日期类型的转换
  • 日期格式自定义
  • 表格宽度自适应
  • ......更多特性

引入依赖包

以Maven为例,引入Jxcel依赖包:

<dependency>
    <groupId>com.jptangchina</groupId>
    <artifactId>jxcel</artifactId>
    <version>${jxcel.version}</version>
</dependency>

准备数据模型

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@JxcelSheet("学生名单")
class Student {
    @JxcelCell("年龄")
    private int age;
    @JxcelCell(value = "性别", parse = {"男", "女"})
    private int sex;
    @JxcelCell(value = "姓名", order = 1)
    private String name;
    @JxcelCell(value = "出生日期", format = "yyyy-MM-dd")
    private Date birthDay;
    @JxcelCell(value = "手机号", suffix = "\t")
    private String mobile;
}

导出数据到Excel

// 导出为XLS Workbook对象
JxcelGenrator.xlsGenrator().generateWorkbook(Arrays.asList(new Student()));
// 导出为XLSX Workbook对象
JxcelGenrator.xlsxGenrator().generateWorkbook(Arrays.asList(new Student()));
// 导出为XLS文件
JxcelGenrator.xlsGenrator().generateFile(Arrays.asList(new Student()));
// 导出为XLSX文件
JxcelGenrator.xlsxGenrator().generateFile(Arrays.asList(new Student()));

将Excel解析为Java对象

// 从文件解析
JxcelParser.parser().parseFromFile(Student.class, new File(filePath));
// 从Workbood对象解析
JxcelParser.parser().parseFromWorkbook(Student.class, workbook);

例子

Student student = new Student(18, 0, "JptangChina", new Date(), "18510010000");
JxcelGenrator.xlsxGenrator().generateFile(Arrays.asList(student), "/home/jptangchina/test.xlsx");

输出的表格如下:


更多精彩博文,欢迎访问我的个人博客