使用阿里的easyexcel 来实现excel文件的读取和下载
使用阿里的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文件的读取和下载相关推荐
- EasyExcel实现对excel文件读写
EasyExcel实现对excel文件读写 1.EasyExcel介绍 2.EasyExcel特点: 3.EasyExcel写操作 3.1 pom中引入xml相关依赖 3.2 创建实体类 3.3 实现 ...
- Django框架(上传Excel文件并读取)
博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu] 不显示删除回复 显示所有回复 ...
- 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法
前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...
- 使用POI对excel文件进行读取
使用POI对excel文件进行读取 Excel转换为HTML表格(包括样式) Excel读取图片 Excel读取附件 使用POI对excel文件进行读取 excel转换HTML 代码块 ReadExc ...
- C#实现excel文件的读取、写入以及异常处理,附源码程序
C#实现excel文件的读取与写入,附源码程序 说明 关键代码段 源程序下载地址 注意事项及异常解决 说明 通过OleDB方式,对execl文件进行读取.写入操作. 注:网上很多类似的代码,但是代码中 ...
- POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表
POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...
- 自动更新开奖数据的excel文件,供大家下载
自动更新开奖数据的excel文件,供大家下载 2010-03-14 20:22 228492人阅读打印来源:乐彩网 作者:eren 很多人拥有自制excel电子表格,常要更新最基本的开奖信息.如有多期 ...
- SpringBoot整合Thymeleaf+EasyExcel实现excel文件的读取并展示,附加swagger2配置(超详细示范!)
目录 1.Springboot整合Thyemleaf+EasyExcel 步骤 1.1 pom文件引入依赖 1.2 yml文件配置 1.3 config配置类 1.3.1 Swagger2配置类 1. ...
最新文章
- 拯救老电影——详解爱奇艺ZoomAI视频增强技术的应用
- LeetCode--448
- MyAdapter Andriod
- Awk by Example--转载
- Jeson nano + 思岚激光雷达rplidar_s1 + ubuntu18.04
- 设单片机的晶振频率为6mhz c语言,单片机习题科学出版社.doc
- 图解全排列问题_排列组合的各种知识点以及解题小技巧
- python变量标识符_Python 1基础语法三(变量和标识符的区别)
- 超越Excel、python的数据可视化报表,月薪3W的人都在用
- Eclipse用法和技巧十六:自动添加未实现方法2
- 知物由学 | 如何应对日益强大的零日攻击
- NP问题验证机的理解
- C++操作符operator的另一种用法
- Matlab中的画图函数
- 动态规划挖金矿问题——python实现
- 日语动词的13种变形
- unity3d Android客户端与PC服务器实现Socket通信(wifi)
- PhotoSweeper X (重复照片清理工具)
- 计算机网络笔记(王道考研) 第三章:数据链路层
- 爱奇艺播放按钮动画解析
热门文章
- Unity3D攻击范围光圈Shader实现(UGUI)
- 【c#】程序的异常捕获
- SpringBoot中如何灵活的实现接口数据的加解密...
- spring MVC运行原理
- 多媒体台式计算机各部分功能简介,计算机DIY基础知识
- 关联分析(一):频繁项集及规则产生
- 论售前工程师主要岗位职责及作用(转载)
- 【C#项目】酒店管理系统-WinForm+MySQL
- 【保姆级教程】Anaconda的安装教程:包括Anaconda的介绍、下载、安装及环境变量配置等
- 起凡游戏平台登录计算机积极拒绝,起凡游戏用户中心 – 信息