easy-excel

SpringBoot2.X + EasyExcel(76)

萝らか妹 提交于 2020-10-07 04:32:16
官网: EasyExcel 其他简单Excel框架: ExcelUtil 1、pom依赖 <dependency> <groupId> com.alibaba </groupId> <artifactId> easyexcel </artifactId> <version> 2.2.6 </version> </dependency> 2、实体类 @Data @NoArgsConstructor @AllArgsConstructor public class User { @ExcelProperty ( value = "姓名" ) private String userName ; @NumberFormat ( "#.##%" ) @ExcelProperty ( value = "体脂率" ) private double fat ; @ExcelProperty ( value = "编写日期" ) private String birthday ; } 3、导出数据 @GetMapping ( value = "/write" ) public String write (){ String url = "/Users/mac/Desktop/76521.xlsx" ; List<User> list = Arrays. asList ( new User( "刘飞"

easyexcel注解

情到浓时终转凉″ 提交于 2020-08-15 08:28:37
目录 @ExcelProperty @ColumnWith @ContentFontStyle @ContentLoopMerge @ContentRowHeight @ContentStyle @HeadFontStyle @HeadRowHeight @HeadStyle @ExcelIgnore @ExcelIgnoreUnannotated @ExcelProperty 这是最常用的一个注解,注解中有三个参数 value , index , converter 分别代表列明,列序号,数据转换方式, value 和 index 只能二选一,通常不用设置 converter 最佳实践 public class ImeiEncrypt { @ExcelProperty(value = "imei") private String imei; } @ColumnWith 用于设置列宽度的注解,注解中只有一个参数value,value的单位是字符长度,最大可以设置255个字符,因为一个excel单元格最大可以写入的字符个数就是255个字符。 最佳实践 public class ImeiEncrypt { @ColumnWidth(value = 18) private String imei; } @ContentFontStyle 用于设置单元格内容字体格式的注解 参数: 参数

EasyExcel 轻松灵活读取Excel内容

和自甴很熟 提交于 2020-08-13 17:12:10
写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现,POI 是将整个 Excel 的内容全部读出来放入到内存中,所以内存消耗非常严重,如果同时进行包含大数据量的 Excel 读操作,很容易造成内存溢出问题 但 EasyExcel 的出现很好的解决了 POI 相关问题,原本一个 3M 的 Excel 用 POI 需要100M左右内存, 而 EasyExcel 可以将其降低到几 M,同时再大的 Excel 都不会出现内存溢出的情况,因为是逐行读取 Excel 的内容 (老规矩,这里不用过分关心下图,脑海中有个印象即可,看完下面的用例再回看这个图,就很简单了) 另外 EasyExcel 在上层做了模型转换的封装,不需要 cell 等相关操作,让使用者更加简单和方便,且看 简单读 假设我们 excel 中有以下内容: 我们需要新建 User 实体,同时为其添加成员变量 @Data public class User { /** * 姓名 */ @ExcelProperty(index = 0) private String name; /** * 年龄 */ @ExcelProperty(index = 1) private Integer

超简洁!利用easyExcel导出,读入Excel

狂风中的少年 提交于 2020-08-10 02:00:06
x 深夜,在东莞,7天酒店,打开电脑,访问国内最大的同性交友网站。 日常开发中,导出导入场景非常多,尤其是对于后台管理更是一个列表一个导出,如果从导出的业务中抽离出复用代码,专注于逻辑开发,对于开发者而言非常重要。前有使用POI,但作者还是更喜EasyExcel的简洁高效不拖沓,所以特意写篇文章记录下。 准备工作 准备工作是看文档了解EasyExcel吗?不,我们直接上手吧!我发现最近的业务里面,最简单的例子已经应付下来了!所以准备工作自然只需导入EasyExcel的jar包,这里我们由于是springboot项目,所以直接使用maven。直接上最新的版本了!pom.xml给它加上: xxxxxxxxxx < dependency > < groupId > com . alibaba </ groupId > < artifactId > easyexcel </ artifactId > < version > 2.2 . 5 </ version > </ dependency > 导出 准备工作已经完成,导出开始,首先需要一个Bean类,导出的字段和Excel文件的字段一样即可。@Data是用了lombok,@ExcelProperty则包含了Excel首行的名称和字段所在位置,从0开始,不能重复。 ​ x @Data public class ExportVo {

springboot整合easyexcel实现Excel导入导出

喜夏-厌秋 提交于 2020-08-09 17:31:54
easyexcel:快速、简单避免OOM的java处理Excel工具 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。 easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到KB级别,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便 详细使用及介绍请参考 官网 快速使用 创建springboot工程,然后引入相关依赖包如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope

Java操作Excel:POI和EasyExcel

こ雲淡風輕ζ 提交于 2020-08-07 11:09:49
文章与CSDN同步,欢迎访问: https://blog.csdn.net/qq_40280582/article/details/107300081 代码地址: https://gitee.com/ilovemo/poi-study 前言 我们经常需要将项目中的表格数据或者文档数据进行导入或者导出操作,这个如果自己从零开始做还比较麻烦。比如我之前就职的公司都是自己做的组件,但是很不好用,BUG 太多。关于表格导入导出,市面上比较知名的开源就是 Apache 的POI 和 阿里巴巴的 EasyExcel了。EasyExcel 也是对 POI 的改进和封装, 更加好用。下面通过一些 demo 学习如何使用这两个开源组件。这两个组件都不难,多看文档就能会,尤其是 EasyExcel 的文档非常详细。这篇博客主要自己在写 demo 的时候整理的笔记,方便以后使用的时候查阅。如果能帮到你那就更好了 日常开发需求 1、将用户的信息导出为 excel 表格。 2、将 Excel 表中的信息录入到网站数据库。 开发中经常会涉及到 excel 的 处理,如导出 Excel ,导入 Excel 到数据库中。 操作 Excel 目前比较流行的就是 Apache POI 和阿里巴巴的 EasyExcel。 Apache POI Apache POI 官网: http://poi.apache.org

easyexcel 自动设置列宽

ぃ、小莉子 提交于 2020-08-07 09:48:27
版本 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.4</version> </dependency> 导出controller层代码 @RequestMapping("/download") public void download(HttpServletResponse response) throws IOException { response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("测试", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); List<Dept> depts = new ArrayList<>(3); for (int i = 0; i < 3; i++) { Dept dept = new Dept(); dept.setDname("d"+i); dept.setDeptno

10w行级别数据的Excel导入优化记录

99封情书 提交于 2020-08-05 06:16:40
需求说明 项目中有一个 Excel 导入的需求:缴费记录导入 由实施 / 用户 将别的系统的数据填入我们系统中的 Excel 模板,应用将文件内容读取、校对、转换之后产生欠费数据、票据、票据详情并存储到数据库中。 在我接手之前可能由于之前导入的数据量并不多没有对效率有过高的追求。但是到了 4.0 版本,我预估导入时Excel 行数会是 10w+ 级别,而往数据库插入的数据量是大于 3n 的,也就是说 10w 行的 Excel,则至少向数据库插入 30w 行数据。因此优化原来的导入代码是势在必行的。我逐步分析和优化了导入的代码,使之在百秒内完成(最终性能瓶颈在数据库的处理速度上,测试服务器 4g 内存不仅放了数据库,还放了很多微服务应用。处理能力不太行)。具体的过程如下,每一步都有列出影响性能的问题和解决的办法。 导入 Excel 的需求在系统中还是很常见的,我的优化办法可能不是最优的,欢迎读者在评论区留言交流提供更优的思路 声明:本文首发于博客园,作者:后青春期的Keats;地址: https://www.cnblogs.com/keatsCoder/ 转载请注明,谢谢! 一些细节 数据导入:导入使用的模板由系统提供,格式是 xlsx (支持 65535+行数据) ,用户按照表头在对应列写入相应的数据 数据校验:数据校验有两种: 字段长度、字段正则表达式校验等

10w行级别数据的Excel导入优化记录

两盒软妹~` 提交于 2020-07-28 06:09:18
需求说明 项目中有一个 Excel 导入的需求:缴费记录导入 由实施 / 用户 将别的系统的数据填入我们系统中的 Excel 模板,应用将文件内容读取、校对、转换之后产生欠费数据、票据、票据详情并存储到数据库中。 在我接手之前可能由于之前导入的数据量并不多没有对效率有过高的追求。但是到了 4.0 版本,我预估导入时Excel 行数会是 10w+ 级别,而往数据库插入的数据量是大于 3n 的,也就是说 10w 行的 Excel,则至少向数据库插入 30w 行数据。因此优化原来的导入代码是势在必行的。我逐步分析和优化了导入的代码,使之在百秒内完成(最终性能瓶颈在数据库的处理速度上,测试服务器 4g 内存不仅放了数据库,还放了很多微服务应用。处理能力不太行)。具体的过程如下,每一步都有列出影响性能的问题和解决的办法。 导入 Excel 的需求在系统中还是很常见的,我的优化办法可能不是最优的,欢迎读者在评论区留言交流提供更优的思路 声明:本文首发于博客园,作者:后青春期的Keats;地址: https://www.cnblogs.com/keatsCoder/ 转载请注明,谢谢! 一些细节 数据导入:导入使用的模板由系统提供,格式是 xlsx (支持 65535+行数据) ,用户按照表头在对应列写入相应的数据 数据校验:数据校验有两种: 字段长度、字段正则表达式校验等

阿里easyexcel 导出excel时候报 InternalError: java.lang.reflect.InvocationTargetException

旧时模样 提交于 2020-07-28 05:35:26
具体错误如下图: 最下面的异常是空指针,检查代码没发现有什么问题,百度了一圈基本都是说POI的包冲突的,但是检查了jar感觉没问题,去github官网查看,找到有用的信息。 实在没想到是字体的问题,但实际,看到Font 这个单词的时候就应该想到。 大佬已经给出解决方案, 执行: yum install dejavu-sans-fonts fontconfig -y 安装字体,再次导出,解决! 来源: oschina 链接: https://my.oschina.net/sprouting/blog/4318717