使用阿里的easyexcel 来实现excel文件的读取和下载

1.首先下载maven依赖

 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.1</version></dependency>   <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency>

2.导出excel 文件
2.1 创建实体类对象

@Datapublic class TestImprotVo {@ExcelProperty(value = "姓名",index = 0)private  String name;@ExcelProperty(value = "年龄",index = 1)private  String age;}

2.2 导出代码

private static List<TestImprotVo> getStuList(){List<TestImprotVo> list = new ArrayList<>();for(int i=1; i<10;i++){TestImprotVo vo = new TestImprotVo();vo.setName("rise"+i);vo.setAge(String.valueOf(i));list.add(vo);}return list;}public static void main(String[] args) {String file = "D:\\dowm.xlsx";EasyExcel.write(file,TestImprotVo.class).sheet("学生列表").doWrite(getStuList());}

3.读取excel 文件
3.1 创建一个监听器类

public class ReadListen  extends AnalysisEventListener<TestImprotVo> {@Overridepublic void invoke(TestImprotVo testImprotVo, AnalysisContext analysisContext) {System.out.println("每行数据"+testImprotVo);}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {System.out.println("执行完成");}@Overridepublic void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {System.out.println("表头信息"+headMap);}
}

3.2 读取excel

private static final String FUJIANFILENAME[] = {"xlsx","xls"};@RequestMapping("/upload")public ResultBody test(@RequestParam("file") MultipartFile file){Set<String> fujianSuffix = new HashSet<>(Arrays.asList(FUJIANFILENAME));String originalFilename = file.getOriginalFilename();int length = originalFilename.length();String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, length);if(!fujianSuffix.contains(suffix)){return ResultBody.failure("请用正确模板导入数据");}try {EasyExcel.read(file.getInputStream(), TestImprotVo.class, new ReadListen()).sheet().doRead();} catch (IOException e) {e.printStackTrace();}return ResultBody.success();}

3.3
监听器会读取到excel 中的每行数据,然后执行我们具体的业务逻辑.
4. 优点
1.使用阿里的easyexcel 在操作excel 时候在读取大文件时不会造成内存的溢出,因为它是一行一行的去读取文件,而不是把文件整个加载到内存中.
2. 使用简单,方便.

使用阿里的easyexcel 来实现excel文件的读取和下载相关推荐

  1. EasyExcel实现对excel文件读写

    EasyExcel实现对excel文件读写 1.EasyExcel介绍 2.EasyExcel特点: 3.EasyExcel写操作 3.1 pom中引入xml相关依赖 3.2 创建实体类 3.3 实现 ...

  2. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  3. 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10

    使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu] 不显示删除回复             显示所有回复     ...

  4. 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法

    前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...

  5. 使用POI对excel文件进行读取

    使用POI对excel文件进行读取 Excel转换为HTML表格(包括样式) Excel读取图片 Excel读取附件 使用POI对excel文件进行读取 excel转换HTML 代码块 ReadExc ...

  6. C#实现excel文件的读取、写入以及异常处理,附源码程序

    C#实现excel文件的读取与写入,附源码程序 说明 关键代码段 源程序下载地址 注意事项及异常解决 说明 通过OleDB方式,对execl文件进行读取.写入操作. 注:网上很多类似的代码,但是代码中 ...

  7. POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表

    POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...

  8. 自动更新开奖数据的excel文件,供大家下载

    自动更新开奖数据的excel文件,供大家下载 2010-03-14 20:22 228492人阅读打印来源:乐彩网 作者:eren 很多人拥有自制excel电子表格,常要更新最基本的开奖信息.如有多期 ...

  9. SpringBoot整合Thymeleaf+EasyExcel实现excel文件的读取并展示,附加swagger2配置(超详细示范!)

    目录 1.Springboot整合Thyemleaf+EasyExcel 步骤 1.1 pom文件引入依赖 1.2 yml文件配置 1.3 config配置类 1.3.1 Swagger2配置类 1. ...

最新文章

  1. 拯救老电影——详解爱奇艺ZoomAI视频增强技术的应用
  2. LeetCode--448
  3. MyAdapter Andriod
  4. Awk by Example--转载
  5. Jeson nano + 思岚激光雷达rplidar_s1 + ubuntu18.04
  6. 设单片机的晶振频率为6mhz c语言,单片机习题科学出版社.doc
  7. 图解全排列问题_排列组合的各种知识点以及解题小技巧
  8. python变量标识符_Python 1基础语法三(变量和标识符的区别)
  9. 超越Excel、python的数据可视化报表,月薪3W的人都在用
  10. Eclipse用法和技巧十六:自动添加未实现方法2
  11. 知物由学 | 如何应对日益强大的零日攻击
  12. NP问题验证机的理解
  13. C++操作符operator的另一种用法
  14. Matlab中的画图函数
  15. 动态规划挖金矿问题——python实现
  16. 日语动词的13种变形
  17. unity3d Android客户端与PC服务器实现Socket通信(wifi)
  18. PhotoSweeper X (重复照片清理工具)
  19. 计算机网络笔记(王道考研) 第三章:数据链路层
  20. 爱奇艺播放按钮动画解析

热门文章

  1. Unity3D攻击范围光圈Shader实现(UGUI)
  2. 【c#】程序的异常捕获
  3. SpringBoot中如何灵活的实现接口数据的加解密...
  4. spring MVC运行原理
  5. 多媒体台式计算机各部分功能简介,计算机DIY基础知识
  6. 关联分析(一):频繁项集及规则产生
  7. 论售前工程师主要岗位职责及作用(转载)
  8. 【C#项目】酒店管理系统-WinForm+MySQL
  9. 【保姆级教程】Anaconda的安装教程:包括Anaconda的介绍、下载、安装及环境变量配置等
  10. 起凡游戏平台登录计算机积极拒绝,起凡游戏用户中心 – 信息