EasyExcel结合Springboot的将excel导入数据库
1、 EasyExcel简介
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。
EasyExcel读取Excel的解析原理:
2、导入相应的依赖文件
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.3</version>
</dependency>
3、编写对应数据库字段的pojo类,使用注解注入
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("t_ordersetting")
public class OrderSetting {@TableId(type = IdType.AUTO)private Integer id;//将java实体的属性和excel文件的列对应起来@ExcelProperty("日期")@TableField(value = "orderDate")private Date orderDate;@ExcelProperty("可预约数量")private Integer number;private Integer reservations = 0;
}
4、编写对应下载的接口文件
(这里为固定的模版,不需要可以的去记录,大概了解执行流程即可,取即可用)
@PostMapping("/upload")public Result upload(MultipartFile excelFile) throws IOException {//springboot项目回头发布时,以jar包形式发布,接收文件时,能否将一个文件写到项目的jar包中? 无法实现的//springboot项目接受文件时,一般采用外部存储方式进行存储.① 存到服务器的本地(某个目录) ② 存储到分布式文件存储系统里(七牛云、阿里云、fastdfs、minio)if (excelFile != null) {//将文件存储到当前机器的某个目录String baseDir = "/Users/xixi/Desktop/helpht";//获取上传的文件的文件名 (ordersetting_template.xlsx)String originalFilename = excelFile.getOriginalFilename();String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));//生成一个唯一文件名String uniqueFilename = UUID.randomUUID().toString().replaceAll("-", "") + suffix;String dirPath = baseDir ;//确保存放文件的目录是存在的File dirFile = new File(dirPath);if (!dirFile.exists()){dirFile.mkdirs();}//最终存放文件的文件路径String filePath = dirPath + "/" + uniqueFilename;//保存文件excelFile.transferTo(new File(filePath));//读取上传后的文件中的内容,将数据添加/更新到ordersetting表中/*参数一File file: 要读取的目标文件参数二Class head :将目标文件中的行记录封装到java的那个类型对象参数三ReadListener readListener :读取过程中的回调对象(每读取一行,封装成一个对象后,都会触发这个对象的invoke方法)*/List<OrderSetting> orderSettings = new ArrayList<>();EasyExcel.read(new File(filePath),OrderSetting.class,new SyncReadListener(){@Overridepublic void invoke(Object object, AnalysisContext context) {orderSettings.add((OrderSetting) object);}}).doReadAll();//更新或者添加for (OrderSetting orderSetting : orderSettings) {ordersettingService.addOrUpdate(orderSetting);}return Result.success(null);}return Result.error(Result.ERROR,"文件不能为空");}
5、需要准备对应的模版excel,同时在里面添加想要输入的字段信息
6、使用ApiPost进行Controller接口的测试(导入模版文件执行)
7、查看数据库对应的信息是否添加完成
EasyExcel结合Springboot的将excel导入数据库相关推荐
- java通过jxl处理execl空行_jxl操作Excel导入数据库之空行的处理
jxl因其快速小巧受到大家的欢迎,但是jxl还是有许多不尽如人意的地方. 本文旨在解决jxl读取excel数据时无法自动取掉空行的问题,其实就是添加一个方法. ? //返回去掉空行的记录数 priva ...
- php读取excel中数据库,ThinkPHP 框架实现的读取excel导入数据库操作示例
本文实例讲述了ThinkPHP 框架实现的读取excel导入数据库操作.分享给大家供大家参考,具体如下: 入口文件中: require_once VENDOR_PATH.'PHPExcel/PHPEx ...
- 当excel 导入数据库的字段大于255时,把第一行的字段加长超过255.
当excel 导入数据库的字段大于255时,把第一行的字段加长超过255. 因为Excel驱动程序在进行导入操作时会预先采样部分数据判断字段的数据类型,所以对采样数据结果作的判断同全部数据的数据类型有 ...
- excel导入数据库的简单方法
一个简单的方法将excel导入数据库 private void Plan_Import_Execl() { OpenFileDialog fileDialog ...
- Java实现Excel导入数据库,数据库中的数据导入到Excel
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1. ...
- ASP.NET 将Excel导入数据库
将Excel导入数据库大致流程: Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...
- java web excel导入数据库
原作者:sincoolvip 出处:http://www.cnblogs.com/sincoolvip/p/6531403.html 分析:首先采用一个工具类Excel2List.java,把exce ...
- .NET网站本机调试通过、发布后EXCEL导入数据库报错问题的解决
近期做了一个EXCEL导入数据库的页面,在VS2012本机调试中导入XLS\XLSX均顺利通过,但在WEB环境下导入时均出错! 在网上查了相关资料,最有可能的原因是 DCOM 中EXCEL应用程序权限 ...
- 利用Excel导入数据库的几种实现方式
利用Excel导入数据库的几种实现方式 Ⅰ 直接使用navicat导入 tips:要导入的excel中的字段与数据库表中的字段对应好 选中数据表后,点击导入向导 选择数据源 一路next,然后出现这一 ...
最新文章
- opencv用haartraining训练出现的一些问题
- 牛客寒假5-D.炫酷路途
- 使用CRM的List WebPart
- wxWidgets:wxMDIChildFrame类用法
- 搭建项目前端页面环境
- java环境变量javac不能成功 win7_配置Java环境
- 复合消隐信号的作用_南大《AFM》:可拉缩、粘合、导电的双信号柔性彩色薄膜...
- unity打包android 乱码,Unity3d发布IOS9应用时出现中文乱码的解决方法
- DataGrid实现简单的行分组
- 十一全国电影票房近8亿元 创春节档以来单日大盘新高
- 韦根协议-C编程实现
- netty系列之:HashedWheelTimer一种定时器的高效实现
- Linux删除其中一行的快捷键,Linux 命令快捷键
- php 识别二维码内容
- flt 转word 图片不全(已解决)
- excel波士顿矩阵怎么做_excel矩阵图怎么做
- 使用决策树算法评估汽车等级
- 优化问题---梯度、方向导数、法线
- 高效治理垃圾渗滤液将成为环保产业的重要支撑力量
- 用51单片机做一个物联网温度计+远程开关