SpringBoot导入Excel数据到MySQL数据库
package com.example.example1.Controller;
import com.example.example1.Entity.User;
import com.example.example1.Service.UserRepository;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
* Created by BLIT on 2018/11/30.
*/
@Controller
@RequestMapping(path = "/excel")
public class ImportController {
@Autowired
private UserRepository userRepository; @GetMapping(path = "/import")
@ResponseBody
public void Import() throws IOException{
File file = new File("C:\\Users\\zxg\\Desktop\\测试2003.xls"); //实际这个路径由前端传后台
FileInputStream fis = new FileInputStream(file);
Workbook wb = null;
try {
if(isExcel2003(file.getPath())){
System.out.println("2003版本Excel: .xls结尾");
wb = new HSSFWorkbook(fis); //创建2003版本Excel工作簿对象
}else if (isExcel2007(file.getPath())){
System.out.println("2007版本Excel: .xlsx结尾");
wb = new XSSFWorkbook(fis); //创建2007版本Excel工作簿对象
}else {
System.out.println("未知版本的Excel !!!");
}
Sheet sheet = wb.getSheetAt(0); //获取第1个工作表
for(int i=1;i<=sheet.getLastRowNum();i++){//循环Excel文件的i=1行开始
User user = new User();
Row row = sheet.getRow(i); //获取第i行
Cell cell1 = row.getCell(0); //获取第1个单元格的数据
cell1.setCellType(Cell.CELL_TYPE_STRING); //设置Cell的类型为String类型
Cell cell2 = row.getCell(1); //获取第2个单元格的数据
cell2.setCellType(Cell.CELL_TYPE_STRING);
user.setName(cell1.getStringCellValue());
user.setEmail(cell2.getStringCellValue());
System.out.println("第一单元格: " + cell1.getStringCellValue());
System.out.println("第二单元格: " + cell2.getStringCellValue());
userRepository.save(user); //保存
}
} catch (Exception e) {
e.printStackTrace();
}finally {
fis.close();
}
} public static boolean isExcel2003(String filePath)
{
return filePath.matches("^.+\\.(?i)(xls)$");
} public static boolean isExcel2007(String filePath)
{
return filePath.matches("^.+\\.(?i)(xlsx)$");
} }
SpringBoot导入Excel数据到MySQL数据库的更多相关文章
- Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel
Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...
- PHP导入excel数据到MYSQL
这里介绍一个直接将excel文件导入mysql的例子.我花了一晚上的时间测试,无论导入简繁体都不会出现乱码,非常好用.PHP-ExcelReader,下载地址: http://sourceforge. ...
- 通过读取excel数据和mysql数据库数据做对比(二)-代码编写测试
通过上一步,环境已搭建好了. 下面开始实战, 首先,编写链接mysql的函数conn_sql.py import pymysql def sql_conn(u,pwd,h,db): conn=pymy ...
- 导入Excel数据到Oracle数据库的脚本
在cmd运行窗口中输入:sqlldr customermanager/123@orcl control="E:\CustomerData\excelInputOracle\insert.ct ...
- 使用PLSQL导入excel数据至oracle数据库
https://blog.csdn.net/qq_42909551/article/details/82108754 https://jingyan.baidu.com/album/14bd256e2 ...
- 导入excel 数据到mysql出现的时间格式
昨天把一张表的数据导出做修改,然后用Navcat 导入,结果总是失败,也看不出问题,说时间格式不对,我看了excel里时间格式对的,之前是excel导出的,搞 了一两个小时,今天发现导入有个选项,我的 ...
- 通过读取excel数据和mysql数据库数据做对比(一)-win环境准备
要想操作excel和mysql首先需要安装python,然后是安装excel和mysql插件: 第一步安装python: 直接百度搜索,下载安装就可以了. 第二步安装excel插件: 首先到这个htt ...
- 快速导入Excel数据到mysql
首先利用mysql文件,导出csv文件, 然后,直接修改csv文件,然后导入csv文件
- 从phpMyAdmin批量导入Excel内容到MySQL(亲测非常简洁有效)
今天做项目遇到需要用phpMyAdmin批量导入Excel内容到MySQL数据库.分析了我的踏坑经历并且总结一最便捷的一套导入数据的方法,非常实用简洁: 1.修改Excel表的数据,使得Excel中的 ...
随机推荐
- ArcGIS Engine开发鹰眼图的功能(代码优化篇)
在上一篇,ArcGIS Engine开发鹰眼图的功能(基础篇) 上一篇的实现效果图如下, 如果仔细观察,会发现一个问题,即在“鹰眼”的区域,只要在红色线框内的注记会被覆盖. 如果红色框包括整张图的话, ...
- 防止用户重复提交表单数据,session方式,js方式
1. 使用session的方式创建Token令牌解决 创建一个生成令牌的工具类,在该类中有返回类的对象,生成token的方法 public class TokenUtil { /* *单例设计模式(保 ...
- 混沌理论(Chaos theory)和非线性系统
混沌理论(Chaos theory)是关于非线性系统在一定参数条件下展现分岔(bifurcation).周期运动与非周期运动相互纠缠,以至于通向某种非周期有序运动的理论.在耗散系统和保守系统中,混沌运 ...
- js文本对象模型【DOM】(十一)
一.W3C DOM 标准被分为 3 个不同的部分:1.Core DOM - 所有文档类型的标准模型[)Document--> 9;Element -->1;TextNode -->3 ...
- v-for循环列表,展开样式随手风琴
<div class="product_box" v-for="(item,index) of kinds" :key="index" ...
- POSIX多线程
全文共分四部分: POSIX多线程—概述 POSIX多线程—异步编程举例 POSIX多线程—线程基本概念 POSIX多线程—互斥量概述 POSIX多线程—概述 Content 1. ...
- .gitignore详解(附上eclipse的java项目的 .gitignore文件)
今天讲讲Git中非常重要的一个文件――.gitignore. 首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”.这样没有扩展名的文件在Windows下不太好创建, ...
- Jenkins系列之-—DevOps高效插件推荐【转】
基于Jenkins及其插件生态实现自己的持续交付与DevOps平台. jenkins 插件官网 Blue Ocean Jenkins2.7以后可安装,是Jenkins的一种新视图,能够通过图形化的界面 ...
- Redis中如何发现并优化big key?
Redis中的大key一直是重点需要优化的对象,big key既占用比较多的内存,也可能占用比较多的网卡资源,造成redis阻塞,因此我们需要找到这些big key进行优化 一.寻找big key 通 ...
- echarts 如何设置热力图点的大小
series: [{ name: 'AQI', type: 'heatmap', coordinateSystem: 'geo', blurSize: 10, pointSize: 10, // 设置 ...