jxcel - 好用的Excel与Java对象转换工具
更多精彩博文,欢迎访问我的个人博客
Jxcel简介
Jxcel是一个支持Java对象与Excel(目前仅xlsx、xls)互相转换的工具包。
项目地址:https://github.com/jptangchina/jxcel
特性说明
- 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");
输出的表格如下:

更多精彩博文,欢迎访问我的个人博客
jxcel - 好用的Excel与Java对象转换工具的更多相关文章
- Java对象转换成xml对象和Java对象转换成JSON对象
1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...
- JAVA对象转换JSON
1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码 代码如下: JSONArray array = JSONArray.fromObject(userlist); String ...
- 对象转换工具 MapStruct 介绍
前言 在我们日常开发的分层结构的应用程序中,为了各层之间互相解耦,一般都会定义不同的对象用来在不同层之间传递数据,因此,就有了各种 XXXDTO.XXXVO.XXXBO 等基于数据库对象派生出来的对象 ...
- 我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)
Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换) 有时候要做出如下所示的展示文件大小的效果时候,需要对文件大小进行转换,然后再进行相关的代码逻辑编写. 下面是一个Java ...
- FastJson、Jackson、Gson进行Java对象转换Json细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- xml与java对象转换 -- XStreamAlias
@XStreamAlias使用 一. 特点: 简化的API; 无映射文件; 高性能,低内存占用; 整洁的XML; 不需要修改对象;支持内部私有字段,不需要setter/getter方法 提供序列化接口 ...
- 总结学习! xml与java对象转换 --- JDK自带的JAXB(Java Architecture for XML Binding)
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...
- jackson 进行json与java对象转换 之三
2.测试类,没用Junit,用Main()方法输出. package test; import java.io.IOException; import java.util.ArrayList; imp ...
随机推荐
- 877C
构造 想了好长时间... 答案是n+n/2 我们这么想,先把偶数位置炸一遍,所有坦克都在奇数位置,然后再把奇数炸一遍,坦克都到偶数去了,然后再炸一次偶数就都炸掉了... 好巧妙啊 奇偶讨论很重要 #i ...
- 什么是位、字节、字、KB、MB?
1. 位(bit)是计算机里最小的数据单位,每一位的状态只能是0或者1 2. 字节(Byte) 1Byte = 8 bit 它是存储空间的基本计量单位,1byte可以存储一个英文字 ...
- Django View类的解析
class View(object): """ Intentionally simple parent class for all views. Only impleme ...
- Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分
https://codeforces.com/problemset/problem/1118/D2 也是很好想的一个二分啦. 验证m的可行性的时候,肯定是把最多咖啡因的咖啡先尽可能平均分到每一天,因为 ...
- (水题)洛谷 - P2089 - 烤鸡
https://www.luogu.org/problemnew/show/P2089 非常暴力的dfs,不知道不剪枝会怎么样,但是其实最多也就 $3^{10}$ ,大不到哪里去.还有一个细节就是大于 ...
- Swift dynamic关键字
使用dynamic关键字标记属性,使属性启用Objc的动态转发功能: dynamic只用于类,不能用于结构体和枚举,因为它们没有继承机制,而Objc的动态转发就是根据继承关系来实现转发. 参考资料: ...
- VS2008/2010 都不能使用Access2010数据库
VS2008/2010 都不能使用Access2010数据库,因为VS2008/2010都不能使用X64位的Access数据库引擎.
- C语言精确微秒级的延时
//----------------------------------------------------------------------------- // Delay_us //------ ...
- solrJ的查询->统计【转】
package com.fjsh.SearchJobsFirst; import java.text.SimpleDateFormat; import java.util.Calendar; impo ...
- Linux离线安装pip和numpy
首先说明一下pip在线安装程序会发生什么 例如: 运行pip install numpy 1.pip会先下载与自己机器匹配的wheel安装包 我的是numpy-1.12.1-cp27-cp27mu-m ...