关于后端:iexcelexcel-读取和写入解决-excel-OOM-问题

53次阅读

共计 1716 个字符,预计需要花费 5 分钟才能阅读完成。

我的项目简介

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

防止大 excel 呈现 oom,简洁而不简略。

个性

  • 一行代码搞定所有
  • OO 的形式操作 excel,编程更加不便优雅。
  • sax 模式读取,SXSS 模式写入。防止 excel 大文件 OOM。
  • 基于注解,编程更加灵便。
  • 设计简略,正文残缺。不便大家学习革新。
  • 可依据注解指定表头程序
  • 反对 excel 文件内容 bytes[] 内容获取,便于用户自定义操作。

变更日志

变更日志

v0.0.9 次要变更

Fixed @ExcelField 注解生效问题

创作原因

理论工作和学习中,apache poi 操作 excel 过于简单。

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

  • easypoi
  • easyexcel
  • hutool-poi

都或多或少难以满足本人的理论须要,于是就本人写了一个操作 excel 导出的工具。

实现:在阿里 easyexcel 的根底上进行封装,晋升应用的繁难度。

疾速开始

环境要求

jdk1.8+

maven 3.x

引入 jar

应用 maven 治理。

<dependency>
     <groupId>com.github.houbb</groupId>
     <artifactId>iexcel</artifactId>
     <version>1.0.0</version>
</dependency>

Excel 写入

示例

// 根本属性
final String filePath = PathUtil.getAppTestResourcesPath()+"/excelHelper.xls";
List<User> models = User.buildUserList();

// 间接写入到文件
ExcelHelper.write(filePath, models);

其中:

  • User.java
public class User {

    private String name;

    private int age;

    //fluent getter/setter/toString()}
  • buildUserList()

构建对象列表办法如下:

/**
 * 构建用户类表
 * @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 内容生成为:

name    age
hello    20
excel    19

Excel 读取

示例

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

信息

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

SAX 读

// 待生成的 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);

文档

01-ExcelBs 疏导类应用阐明

02-ExcelField 注解指定字段属性

03-ExcelField#order 指定列程序

04-ExcelBs#bytes 获取文件字节信息

Bug & Issues

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

本文由博客一文多发平台 OpenWrite 公布!

正文完
 0