清理easyexcel导出07版Excel时产生的poi-sxssf-sheet*.xml临时文件

最新编辑
临时文件问题已经在官方2.x版本修复了,此文档不具有参考性了

事件起源

因为生产环境每天有大量的Excel文件导出,以前是导出03版,但是03版的每个sheet行数有限而且同样的数据文件本身也比07的要大不少。后来统一换成了导出07版,查资料知道poi的原生导出会有内存使用过高问题,恰好阿里的esayexcel针对此问题进行了优化,最后选型esayexcel。
因为导出的数据没有格式样式要求,只需要原始数据就可以,改造过程也很顺利。通过测试后顺利上线。有一天生产环境突然报警了,tmp/poifiles文件夹磁盘使用量报警;查看发现里面有大量的poi-sxssf-sheet*.xml(*是一串随机数字)临时文件。当时手动清理了,也没有太在意。过了大概有3周吧,又出现了。从这次开始就把调查这个原因提上了日程。

调查过程

首先在本地建立一个maven测试项目,导入github上的easyexcel项目,创建测试数据进行测试。
经过研究发现在导出的过程中会产生两种临时文件,一种是xlsx,一种是xml。导出结束后会将xlsx的临时文件进行清理,但是没有清理xml文件。
在这里插入图片描述
在本地测试发现,将Tomcat停了(st

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EasyExcel是一款Java语言编写的轻量级开源工具,用于实现数据导出Excel文件的功能。它是基于Apache POI封装的一套Excel操作工具,相对于POIEasyExcel提供了更简单易用的API接口和更高效的执行速度。 使用EasyExcel导出Excel文件的过程非常简单。首先,我们需要引入EasyExcel的依赖,例如在Maven项目中引入以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version> </dependency> ``` 接下来,我们需要创建一个Java类作为数据实体,该类的属性对应Excel中的列。例如,我们创建一个User类,包含id、name和age三个属性。 然后,我们可以使用EasyExcel提供的工具类,如ExcelWriter和Sheet等来创建Excel文件并操作其中的工作表和单元格。 具体步骤如下: 1. 创建ExcelWriter对象。 ```java ExcelWriter excelWriter = EasyExcel.write("user.xlsx", User.class).build(); ``` 2. 使用Sheet对象创建一个工作表。 ```java Sheet sheet = new Sheet(1, 0, User.class); ``` 3. 设置工作表的表头。 ```java sheet.setHead(Arrays.asList("ID", "姓名", "年龄")); ``` 4. 查询数据库或从其他数据源获取数据,将数据填充到Excel文件中。 ```java List<User> userList = userService.getUserList(); excelWriter.write(userList, sheet); ``` 5. 关闭ExcelWriter对象,保存Excel文件。 ```java excelWriter.finish(); ``` 通过以上步骤,我们就可以使用EasyExcel实现数据导出Excel文件的功能了。这个过程非常简单,同EasyExcel还提供了丰富的功能和易用的API,使得我们可以方便地进行Excel文件的创建、读写和操作。无论是简单的导出还是复杂的导出需求,EasyExcel都可以满足我们的需求,并且具有很好的性能和稳定性。使用EasyExcel能够极大地提高开发效率,减少繁琐的代码编写工作。在CSDN等技术社区中,我们可以找到更多关于EasyExcel的相关教程和示例代码,帮助我们更好地使用和学习EasyExcel

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值