EasyExcel实现⭐️本地excel数据解析并保存到数据库的脚本编写,附案例实现 |
您所在的位置:网站首页 › excel格式解析 › EasyExcel实现⭐️本地excel数据解析并保存到数据库的脚本编写,附案例实现 |
目录 前言 一、 EasyExcel 简介 二、实战分析 1.Controller控制层 2. service方法和方法实现 3.EasyExcel相关类 3.1 excel表实体类 3.2 自定义监听器类 4.测试 4.1 准备工作 4.2 断点调试 5.生成脚本文件 三、分析总结 章末 小伙伴们大家好,最近开发的时候遇到了大量数据处理问题,今天来分析是如何通过EasyExcel工具实现批量数据导入解放双手的 前言项目系统中需要新增一个“繁体中文”初始化翻译功能(系统初始化有中英两个语种),拿到产品给的翻译好的数据后,简单看了下共1800多条数据,需要做的就是将这些数据按照sql插入语句的格式编写好,跑一下脚本即可(类似insert into table value (...);),但是这么多数据一条一条手写指定是要写废了的 天无绝人之路,前几天在地铁上闲来无事翻到的excel数据读取工具这不就来活了嘛,先将表格数据读取解析,然后通过代码插入到数据库中,再用数据库的导出工具生成插入语句,岂不美哉, 说干就干,IDEA 启动 EasyExcel 是一款基于 Java 的开源 Excel 处理工具,它提供了简单且高效的方式来读取、写入和操作 Excel 文件。EasyExcel 是阿里巴巴集团开发并维护的项目,旨在解决大数据量 Excel 文件处理的难题。 以下是 EasyExcel 工具的一些特点和功能: 读取和写入 Excel 文件:EasyExcel 提供了简单易用的 API,可以方便地读取和写入 Excel 文件,支持常见的 Excel 格式,如 .xls 和 .xlsx。 高性能处理:EasyExcel 使用内存友好的方式处理 Excel 文件,能够快速处理大量的数据,具备较高的性能。 简化的数据模型:EasyExcel 采用简化的数据模型,使得读取和写入 Excel 数据更加灵活和方便。您可以将 Excel 文件的数据映射到 Java 对象或者直接处理 Excel 单元格数据。 复杂数据操作:EasyExcel 提供了丰富的 API,支持合并单元格、填充样式、设置数据校验等复杂的 Excel 操作。 监听器机制:EasyExcel 提供了监听器机制,您可以注册监听器来处理读取和写入 Excel 文件过程中的事件,如读取完成、写入成功等。 配置灵活:EasyExcel 支持自定义配置,您可以通过配置参数来定制读取和写入 Excel 文件的行为,如是否跳过空行、是否自动关闭流等。 二、实战分析 1.Controller控制层比较简单,接收一个文件参数,调用业务方法 /** * 导入繁体中文 * */ @ApiOperation(value = "繁体中文落库") @PostMapping(value = "/importTrad") @HLog public void importTraditionInfo(@RequestParam MultipartFile file) { translateService.importTraditionalDataStringInfo(file); } 2. service方法和方法实现也比较简单,先判断是不是读取到了文件,然后调用EasyExcel的read方法 /** * 导入翻译项数据 * * @param file //忽略 */ void importTraditionalDataStringInfo(MultipartFile file); @Override public void importTraditionalDataStringInfo(MultipartFile file) { if (file.isEmpty() || StringUtils.isBlank(file.getOriginalFilename())) { throw new MyException("文件不能为空!"); } try { //ImportTraditionalChineseItemDto 与excel表相对应的实体类 //TraditoonalItemListener 自定义监听器,处理逻辑在这里便补充 EasyExcel.read(file.getInputStream(), ImportTraditionalChineseItemDto.class, new TraditoonalItemListener()) .sheet(0).doRead(); } catch (IOException ex) { log.error("解析LocalDataStringExcel失败!"); } } 3.EasyExcel相关类 3.1 excel表实体类 @Data public class ImportTraditionalChineseItemDto { @ExcelProperty(index = 0) @ApiModelProperty(value = "localizedId") private String localizedId; @ExcelProperty(index = 1) @ApiModelProperty(value = "stringId") private String stringId; @ExcelProperty(index = 2) private String dataStringZh; @ExcelProperty(index = 3) @ApiModelProperty(value = "stringLanguage") private String stringLanguage; @ExcelProperty(index = 4) private String dataStringZhtw; }打开apipost工具,输入请求地址,配置好文件属性,请求头的属性需要配置为这个,请求体这样配,选中需要导入的excel表格 收集到的list集合大小为1842,与表格中的对比一下,去掉第一行的列名,正好1842对的上,继续往下执行,等待执行完成,看数据库表中的数据,也是对的上的 右键》》生成sql》》insert》》复制即可 除了以上这些,还有一些细节关于EasyExcel的,比如 1.这里的参数设置为0,表示从文件中的第一个表格读取,下表是从0开始的 2.也可以使用字符,使用字符则直接指定某一个表格的名称即可 3.包括实体类中的index指定下标,也可以通过赋值具体的列名实现 章末文章到这里就结束了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |