excel 系列

Excel Export 踩坑注意点+导出方案设计

基于 hutool 的 EXCEL 优化实现

iexcel-excel 大文件读取和写入,解决 excel OOM 问题-01-入门介绍

iexcel-excel 大文件读取和写入-02-Excel 引导类简介

iexcel-excel 大文件读取和写入-03-@ExcelField 注解介绍

iexcel-excel 大文件读取和写入-04-order 指定列顺序

iexcel-excel 大文件读取和写入-05-file bytes 获取文件字节信息

Aapche POI java excel 操作工具包入门

项目简介

IExcel 用于优雅地读取和写入 excel。

避免大 excel 出现 oom,简约而不简单。

特性

  • 一行代码搞定一切

  • OO 的方式操作 excel,编程更加方便优雅。

  • sax 模式读取,SXSS 模式写入。避免 excel 大文件 OOM。

  • 基于注解,编程更加灵活。

  • 设计简单,注释完整。方便大家学习改造。

  • 可根据注解指定表头顺序

  • 支持 excel 文件内容 bytes[] 内容获取,便于用户自定义操作。

开源地址

https://github.com/houbb/iexcel

创作缘由

实际工作和学习中,apache poi 操作 excel 过于复杂。

近期也看了一些其他的工具框架:

  • easypoi

  • easyexcel

  • hutool-poi

都或多或少难以满足自己的实际需要,于是就自己写了一个操作 excel 导出的工具。

实现:在阿里 easyexcel 的基础上进行封装,提升使用的简易度。

快速开始

环境要求

jdk1.8+

maven 3.x

引入 jar

使用 maven 管理。

  [xml]
1
2
3
4
5
<dependency> <groupId>com.github.houbb</groupId> <artifactId>iexcel</artifactId> <version>1.0.0</version> </dependency>

Excel 写入

示例

  [java]
1
2
3
4
5
6
// 基本属性 final String filePath = PathUtil.getAppTestResourcesPath()+"/excelHelper.xls"; List<User> models = User.buildUserList(); // 直接写入到文件 ExcelHelper.write(filePath, models);

其中:

  • User.java
  [java]
1
2
3
4
5
6
7
8
public class User { private String name; private int age; //fluent getter/setter/toString() }
  • buildUserList()

构建对象列表方法如下:

  [java]
1
2
3
4
5
6
7
8
9
10
11
/** * 构建用户类表 * @return 用户列表 * @since 0.0.4 */ public static List<User> buildUserList() { List<User> users = new ArrayList<>(); users.add(new User().name("hello").age(20)); users.add(new User().name("excel").age(19)); return users; }

写入效果

excel 内容生成为:

  [plaintext]
1
2
3
name age hello 20 excel 19

Excel 读取

示例

  [java]
1
2
final String filePath = PathUtil.getAppTestResourcesPath()+"/excelHelper.xls"; List<User> userList = ExcelHelper.read(filePath, User.class);

信息

  [plaintext]
1
[User{name='hello', age=20}, User{name='excel', age=19}]

SAX 读

  [java]
1
2
3
4
5
6
7
8
9
10
11
// 待生成的 excel 文件路径 final String filePath = PathUtil.getAppTestResourcesPath()+"/excelReadBySax.xls"; AbstractSaxReadHandler<User> saxReadHandler = new AbstractSaxReadHandler<User>() { @Override protected void doHandle(int i, List<Object> list, User user) { System.out.println(user); } }; ExcelHelper.readBySax(User.class, saxReadHandler, filePath);

Bug & Issues

欢迎提出宝贵意见:Bug & Issues