文档章节

Java解析Excel之xlsmapper

 溪水涛
发布于 2016/04/12 16:13
字数 383
阅读 12
收藏 0

项目地址:https://github.com/mygreen/xlsmapper


具体使用参照 test/data/*.xlxs示例



XlsMapper

XlsMapper is Java Library for mapping Excel sheets to POJO.

  • Licensee

Apache License verion 2.0

Setup

<dependency>
    <groupId>com.github.mygreen</groupId>
    <artifactId>xlsmapper</artifactId>
    <version>1.4</version>
</dependency>

Documentation

http://mygreen.github.io/xlsmapper/sphinx/howtouse.html

Getting Started

For example, here is one Excel sheet.

Sample Excel

Map this Excel sheet to POJO.

  • Map the sheet with annotation @XlsSheet .

  • Map the cell 'Date' with annotation @XlsLabelledCell .

  • Map the table list 'User List' with annotation @XlsHorizontalRecords .

// POJO for mapping sheet.@XlsSheet(name="List")public class UserSheet {    @XlsLabelledCell(label="Date", type=LabelledCellType.Right)    Date createDate;    @XlsHorizontalRecords(tableLabel="User List")    List<UserRecord> users;

}

And the following is the record class.

  • Properties of the record class is mapped to columns by @XlsColumn .

  • Can map to int and enum type.

// Record classpublic class UserRecord {    @XlsColumn(columnName="ID")    int no;    @XlsColumn(columnName="Class", merged=true)    String className;    @XlsColumn(columnName="Name")    String name;    @XlsColumn(columnName="Gender")    Gender gender;

}// enum for the gender.public enum Gender {
    male, female;
}

You can get the mapped POJO using XlsMapper#load() like following:

// Load sheet with mapping to POJO.XlsMapper xlsMapper = new XlsMapper();UserSheet sheet = xlsMapper.load(    new FileInputStream("example.xls"), // excel sheet.
    UserSheet.class                     // POJO class.
    );

How to saving the sheet.

For example with saving the sheet, using same sheet.

Here is the template Excel sheet.

Sample Excel

And the following is the record class.

  • Append the annotation @XlsDateConverter for setting Excel format pattern.

  • Append the attribute overRecord with @XlsHorizontalRecords.

@XlsSheet(name="List")public class UserSheet {    @XlsLabelledCell(label="Date", type=LabelledCellType.Right)    @XlsDateConverter(excelPattern="yyyy/m/d")    Date createDate;    @XlsHorizontalRecords(tableLabel="User List", overRecord=OverRecordOperate.Insert)    List<UserRecord> users;

}

You can save the Excel with POJO using XlsMapper#save() like following:

// Create sheet data.UserSheet sheet = new UserSheet();
sheet.date = new Date();List<UserRecord> users = new ArrayList<>();// Create record data.UserRecord record1 = new UserRecord();
record1.no = 1;
record1.className = "A";
record1.name = "Ichiro";
record1.gender = Gender.male;
users.add(record1);UserRecord record2 = new UserRecord();// ...users.add(record2);

sheet.users = users;// Save the Excel sheet.XlsMapper xlsMapper = new XlsMapper();
xlsMapper.save(    new FileInputStream("template.xls"), // for template excel file.
    new FileOutputStream("out.xls"),     // for output excel file.
    sheet                                // for created sheet data.
    );


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 3
码字总数 1929
作品 0
广州
Java 解析 Excel 工具 - easyexcel

easyexcel —— JAVA 解析 Excel 工具 Java 解析、生成 Excel 比较有名的框架有 Apache poi、jxl 。但他们都存在一个严重的问题就是非常的耗内存,poi 有一套 SAX 模式的 API 可以一定程度的...

匿名
08/13
0
0
java poi 导入excel

所需jar包 poi package example.poi;import java.io.;import java.text.DecimalFormat;import org.apache.poi.hssf.usermodel.;import org.apache.poi.ss.usermodel.;import org.apache.poi......

JohnnyFu
2014/11/21
0
0
Java解析excel工具easyexcel助你快速简单避免OOM[图]

Java解析excel工具easyexcel助你快速简单避免OOM[图] Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程...

原创小博客
07/19
0
0
http接口测试—自动化测试框架设计

一、测试需求描述 对服务后台一系列的http接口功能测试。 输入:根据接口描述构造不同的参数输入值(Json格式) 输出:字符串(传入的方式+传入的字符串) http://localhost:8090/lctest/Tes...

红焖鲤鱼
2015/08/31
0
8
Java Swing的Excel电子表格控件JExcel下载及详细介绍

Java Swing的Excel电子表格控件JExcel JExcel提供了简单和有效的方法整合Excel到Java Swing应用程序中,可以很容易地使用完整的Java Excel API进行显示、创建、打印、读写或修改Excel 工作薄...

netkongjian
2014/05/10
0
3

没有更多内容

加载失败,请刷新页面

加载更多

负载均衡的解决方案有哪些

负载均衡器服务可满足大型组织的需求,支持所有数据中心和跨数据中心高可靠性场景。 本地负载均衡,通过附带或者未附带持久性覆盖选项,Incapsula支持各种负载均衡算法,以优化服务器之间的流...

上树的熊
12分钟前
0
0
Java实现在线打开word文档加盖印章/盖章/签名功能

前言: 我们知道,大型一点的OA办公系统都会有很多在线处理office办公文档的需求。其中有一点也基本绕不开,那就是为文档盖章或添加手写签名来保护文档,让被盖章的文档不再被编辑。 在Java中...

山里的红杏
19分钟前
3
0
js控制输入正负数,小数点后保留两位

//限制数字function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value ...

一直在成长的程序猿
22分钟前
1
0
动态代理

具体场景 为了使代理类与被代理类对第三方有相同的函数,代理类与被代理类一般实现一个公共的interface,定义如下 public interface Subject { void rent(); void hello(String s)...

wuyiyi
25分钟前
0
0
时间字段

我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:...

DemonsI
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部