java后端服务器读取excel将数据导入数据库
使用的是easypoi,官网文档:http://easypoi.mydoc.io/
/**
* 导入Excel文件
*/
@PostMapping("/importTeacher")
@ResponseBody
public RestResponse importTeacher(@RequestParam MultipartFile file) {
System.out.println("进入1");
ImportParams params = new ImportParams();
//设置excel表的标题
params.setTitleRows(1);
//设置excel字段的名字
params.setHeadRows(1);
List<TeacherDto> list = null; try {
list = ExcelImportUtil.importExcel(file.getInputStream(), TeacherDto.class, params);
} catch (Exception e) {
e.printStackTrace();
return RestResponse.failure("导入文件异常");
} if (!list.isEmpty()){
System.out.println("进入2");
TeacherDao teacherDao=new TeacherDao();
//插入数据
teacherDao.insert(list); }else {
return RestResponse.failure("文件没有数据,导入失败");
}
return RestResponse.success("导入成功");
}
@GetMapping("/exportTeacher")
public void exportTeacher(HttpServletResponse response) throws IOException {
TeacherDao teacherDao=new TeacherDao();
List<TeacherDto> list=teacherDao.export(); ExportParams params = new ExportParams("teacher","teacher");
Workbook workbook = ExcelExportUtil.exportBigExcel(params, TeacherDto.class, list);
ExcelExportUtil.closeExportBigExcel();
//文件命名
SimpleDateFormat df = new SimpleDateFormat("MMddHHmmss");
String date = df.format(new Date());
String filename = "teacher_"+date+".xlsx";
// 进行转码,使其支持中文文件名
response.reset();
response.setContentType("application/x-download; charset=utf-8");
//清除jsp页面缓存,用window open打开非jsp页面导出,有此项IE会报错
if (true) {
//http 1.1
response.setHeader("Cache-Control", "no-cache");
//http 1.0
response.setHeader("Pragma", "no-cache");
}//http 1.0和1.1都支持
response.setDateHeader("Expires", 0);
filename = URLEncoder.encode(filename, "UTF-8");
response.addHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
workbook.write(response.getOutputStream());
}
需要一个对应的实体类
public class TeacherDto {
public String getUid() {
return uid;
} public void setUid(String uid) {
this.uid = uid;
} public String getTenant_id() {
return tenant_id;
} public void setTenant_id(String tenant_id) {
this.tenant_id = tenant_id;
} public String getSchool_id() {
return school_id;
} public void setSchool_id(String school_id) {
this.school_id = school_id;
} public String getNickname() {
return nickname;
} public void setNickname(String nickname) {
this.nickname = nickname;
} public Integer getSex() {
return sex;
} public void setSex(Integer sex) {
this.sex = sex;
} public String getAge() {
return age;
} public void setAge(String age) {
this.age = age;
} public String getSchool() {
return school;
} public void setSchool(String school) {
this.school = school;
} public String getClazz() {
return clazz;
} public void setClazz(String clazz) {
this.clazz = clazz;
} public String getMobile() {
return mobile;
} public void setMobile(String mobile) {
this.mobile = mobile;
} public String getAccount() {
return account;
} public void setAccount(String account) {
this.account = account;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Override
public String toString() {
return "TeacherDto{" +
"uid='" + uid + '\'' +
", tenant_id='" + tenant_id + '\'' +
", school_id='" + school_id + '\'' +
", nickname='" + nickname + '\'' +
", sex=" + sex +
", age='" + age + '\'' +
", school='" + school + '\'' +
", clazz='" + clazz + '\'' +
", mobile='" + mobile + '\'' +
", account='" + account + '\'' +
", password='" + password + '\'' +
'}';
} private String uid;
@Excel(name="tenant_id")
private String tenant_id;
@Excel(name="school_id")
private String school_id;
@Excel(name="nickname")
private String nickname;
@Excel(name="sex")
private Integer sex;
@Excel(name="age")
private String age;
@Excel(name="school")
private String school;
@Excel(name="clazz")
private String clazz;
@Excel(name="mobile")
private String mobile;
@Excel(name="account")
private String account;
@Excel(name="password")
private String password;
}
前端使用的是layui
<form class="layui-form">
<div class="layui-inline">
<button class="layui-btn" id="importExcel" type="button"><i class="layui-icon"></i>导入</button>
</div>
<div class="layui-inline">
<button class="layui-btn" id="exportExcel" type="button"><i class="layui-icon"></i>导出</button>
</div>
</form>
<script> layui.use(['layer','form','table','upload'], function() {
var layer = layui.layer,
$ = layui.jquery,
form = layui.form,
table = layui.table,
upload = layui.upload;
//导入
upload.render({
elem: '#importExcel'
,url: "${base}/admin/excel/importTeacher"
,accept: 'file' //普通文件
,multiple: true
,done: function(res){
if(res.success){
layer.msg("上传成功",{time: 1000},function(){
//上传成功后刷新 });
}else{
if(res.message == "导入失败!" || res.message == "导入文件格式不对" || res.message == "导入文件没有数据"){
layer.msg(res.message);
}else{
layer.msg(res.message);
}
}
}
}); //导出
$('#exportExcel').on('click', function () {
window.open('${base}/admin/excel/exportTeacher');
// window.open('http://www.imooc.com/','_blank','width=400,height=500,menubar=no,toolbar=no');
}); });
java后端服务器读取excel将数据导入数据库的更多相关文章
- 将Excel中数据导入数据库(一)
在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...
- 将Excel中数据导入数据库(三)
上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入.比如表WQ_SWMSAR_A字段 ...
- 将Excel中数据导入数据库(二)
在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...
- 读取Execl表数据 导入数据库
不知不觉博客园园林都两年多了,我是今年毕业的应届生,最近公司项目需要改动,很多的数据需要导入,很多的实体类需要些.考虑到这些问题自己写了两个winform版的小工具,一个是读取Execl数据导入数据库 ...
- Excel表数据导入数据库表中
***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为 ...
- mysqlconnector将EXCEL表数据导入数据库
测试excel和脚本放在同一个目录 测试excel和脚本放在同一个目录 #!/usr/bin/env python #coding=utf-8 import xlrd import mysql.con ...
- java读取excel文件数据导入mysql数据库
这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...
- Java 用jxl读取excel并保存到数据库(此方法存在局限,仅限本地电脑操作,放在服务器上的项目,需要把文件上传到服务器,详细信息,见我的别的博客)
项目中涉及到读取excel中的数据,保存到数据库中,用jxl做起来比较简单. 基本的思路: 把excel放到固定盘里,然后前段页面选择文件,把文件的名字传到后台,再利用jxl进行数据读取,把读取到的数 ...
- SpringBoot通过Ajax批量将excel中数据导入数据库
Spring Boot通过Ajax上传Excel并将数据批量读取到数据库中 适合场景:需要通过excel表格批量向数据库中导入信息 操作流程 [1]前端上传一个excel表格 [2] 后端接收这个ex ...
随机推荐
- 基于IDEA工具 lombok 的使用
一.简介 Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO).它通过注解实现这一目的. 二.lombok的添加和常用注解 ...
- 结对项目——四则运算GUI项目
一.项目地址:https://git.coding.net/lvgx/wsz.git 二.PSP: PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min) Plannin ...
- Android学习(二)
学号 20189214 <Android程序设计>第七周学习总结 教材学习内容总结 监听 设置点击监听的5种方式 方法1:直接用匿名内部类 这是最常用的一种方法,直接setXXXListe ...
- nodeJS接入微信公众平台开发
一.写在前面的话 Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程 ...
- BSOJ3760||洛谷P1453 城市环路 题解
城市环路 Description 一座城市,往往会被人们划分为几个区域,例如住宅区.商业区.工业区等等.B市就被分为了以下的两个区域——城市中心和城市郊区.在着这两个区域的中间是一条围绕B市的环路,环 ...
- ApocalypseSomeday
ApocalypseSomeday CountDownLatch和CyclicBarrier分别都是在什么时候使用的? Charles使用(apphttp抓包,request拦截,response拦截 ...
- 2019.03.25 NOIP训练 匹配(match)(贪心)
题意简述: 思路: 直接考虑把人和物品都看成二维平面上面的a,ba,ba,b两类点,然后一个aaa和bbb匹配的条件是xa≤xb&&ya≤ybx_a\le x_b\&\& ...
- 循环更新sqlserver数据库表ID
DECLARE @a INTDECLARE aaa CURSOR for select columnID from LNDB_COLUMN_INFO where columnID BETWEEN 22 ...
- fortran语言调用fortran写的dll
环境:vs2013+IVF 2011 有时候想把fortran写的常用的函数编译为DLL,以供不同的fortran exe调用,这时候应该怎样做呢?[参考 彭国伦老师 fortran95 程序设计 书 ...
- JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate
一.改版原因 1.老板的Date和Calander存在问题,日期操作名称混乱,有的在text下,有的在util下,包名混乱 2.Simple包混乱,致命错误线程不安全. ...