Excel操作组件
组件编码
hzero-starter-excel
一、简介
1.1 概述
hzero-starter-excel
基于POI提供了通用的Excel读取方法,处理了POI读取常见的OutOfMemory
问题,降低了项目操作Excel的难度。
1.2 组件坐标
<dependency>
<groupId>org.hzero.starter</groupId>
<artifactId>hzero-starter-excel</artifactId>
<version>${hzero.starter.version}</version>
</dependency>
1.3 特性
- 不会出现
OutOfMemory
问题 - 支持多sheet页
- 支持数字日期,自定义格式掩码
- 仅支持XLSX文件类型
二、使用指南
2.1 配置
// 保存在内存中的数据行数,默认值100
hzero.excel.cacheSize
// 读取资源时,缓存到内存的字节大小,默认1024
hzero.excel.bufferSize
2.2 读取excel数据
- 实现
org.hzero.excel.serviceExcelReadListener
接口,重写invoke
方法。例:
public class DemoExcelReadListener implements ExcelReadListener {
@Override
public void invoke(JSONObject object) {
System.out.println(object);
}
}
- 调用
org.hzero.excel.helper.ExcelHelper#read
方法,指定下标和起始行,读取数据
List<Column> names = new ArrayList<>();
names.add(new Column().setIndex(0).setName("name").setColumnType(Column.STRING));
names.add(new Column().setIndex(1).setName("age").setColumnType(Column.LONG));
names.add(new Column().setIndex(2).setName("birthday").setColumnType(Column.DATE).setFormat("yyyy-MM-dd HH:mm:ss"));
names.add(new Column().setIndex(3).setName("property").setColumnType(Column.DECIMAL).setFormat("#.##"));
// sheet页和行的起始值都是0
ExcelHelper.read(new File("/usr/demo.xlsx"), new DemoExcelReadListener(), names, 0, 1);