提到Excel的导入导出,大家肯定都知道alibaba开源的EasyExcel,该项目的github地址为:https://github.com/alibaba/easyexcel。
这个项目非常活跃,项目诞生的目的就是为了简化开发、降低内存消耗。我项目中也用过,但还是有一些槽点的,比如文档很简陋,功能做的不完善,不支持图片的读取等。所以,今天给大家推荐另外一款Excel处理的工具:EasyPoi。
一、EasyPoi简介
官网:http://www.afterturn.cn/
文档:http://easypoi.mydoc.io/
EasyPoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法 ,不如poi那么自定义,不如jxl那么多标签,但是我们就是写的少,写的少。
EasyPoi的主要特点
二、EasyPoi的功能介绍
Excel自适应xls和xlsx两种格式,word只支持docx模式,功能还是挺丰富的。
1.Excel导入
2.Excel导出
3.Excel转html
4.word导出
5.pdf导出
三、重点功能介绍
1.注解
EasyPoi起因就是Excel的导入导出,最初的模板是实体和Excel的对应,model--row,filed--col 这样利用注解我们可以和容易做到excel到导入导出 经过一段时间发展,现在注解有5个类分别是
2.Excel 模板
模板是处理复杂Excel的简单方法,复杂的Excel样式,可以用Excel直接编辑,完美的避开了代码编写样式的雷区,同时指令的支持,也提了模板的有效性。就像下面这样使用,具体用法请看文档。
3.Excel<->Html的互转
4.Word模板导出
5.图片的导入导出
@Test//图片导入 public void test() { try { ImportParams params = new ImportParams(); params.setNeedSave(true); List<CompanyHasImgModel> result = ExcelImportUtil.importExcel( new File(PoiPublicUtil.getWebRootPath("import/imgexcel.xls")), CompanyHasImgModel.class, params); for (int i = 0; i < result.size(); i++) { System.out.println(ReflectionToStringBuilder.toString(result.get(i))); } Assert.assertTrue(result.size() == 4); } catch (Exception e) { e.printStackTrace(); } } } //导出 @Excel(name = "公司LOGO", type = 2 ,width = 40 , height = 20,imageType = 1) private String companyLogo;
6.Excel大数据导出
大数据导出是当我们的导出数量在几万,到上百万的数据时,一次从数据库查询这么多数据加载到内存然后写入会对我们的内存和CPU都产生压力,这个时候需要我们像分页一样处理导出分段写入Excel缓解Excel的压力 EasyPoi提供的是两个方法 强制使用 xssf版本的Excel 。具体代码看文档,我们看下资源占用即可:
多次测试用时统计,速度还是可以接受的。
数据量 | 用时 | 文件大小 | 列数 |
---|---|---|---|
100W | 16.4s | 24.3MB | 5 |
100W | 15.9s | 24.3MB | 5 |
200W | 29.5s | 48.5MB | 5 |
100W | 30.8s | 37.8MB | 10 |
200W | 58.7s | 76.1MB | 10 |
7.大数据导出View的用法
Easypoi view 项目是为了更简单的方便搭建在导出时候的操作,利用spring mvc 的view 封装,更加符合spring mvc的风格。EasypoiBigExcelExportView 是针对大数据量导出特定的View,在跳转到这个View的时候不需要查询数据,而且这个View自己去查询数据,用户只要实现IExcelExportServer接口就可以了 。
总结,Easypoi的功能强大,文档和示例代码丰富,大家在开发中如果有类似的需求,不妨一试。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。