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 ...
随机推荐
- Ansible安装及OS规划
Ansible安装 1.以管理用户mtnsadmin连接服务器后下载安装包(-O表示将下载的文件存放到指定的文件夹下,同时重命名下载的文件) sudo wget -O /etc/yum.re ...
- JSON.parse()和eval()的区别
json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢? JSON.parse()之可以解析json格式的数据,并且会对要解析 ...
- IE 11和const的兼容问题
说好的IE11兼容javascript中的常量类型 const 呢 ?可能并没有完全兼容 项目中遇到一个问题,采用google浏览器访问没问题,在本地jetty启动,IE11也可以正常访问,然而当我将 ...
- 常用API String
Java的API以及Object类 Java的API Java的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JD ...
- RPA基础
RPA是什么 软件机器人 RPA是基于计算机操作系统的工作界面,自动识别UI,完成预先设定的工作流程的软件机器人 全自动 自动的操作整个工作流程,用软件的方式代替人力,完成大量的重复性的手工操作, ...
- C++入门
<完美C++>第5版 (美)Walter Savitch,Kenrick Mock 萨维奇//默克 著 薛正华,沈庚,韦远科 译 出版社: 电子工业出版社 时间2019/4/11- ...
- 把excel每一行中的数据输出为一个txt文档的VBA函数
excel vba代码: Sub makeTxt() For i = 1 To 1088'从第1行到1088行(最后一行) On Error Resume Next'出现错误时继续运行脚本 Open ...
- 在Java中使用Socket模拟客户端和服务端(多线程)
1:Socket与ServerSocket的交互 2.Socket和ServerSocket介绍 Socket 构造函数 Socket() Socket(InetAddress address, in ...
- 摘录<奇特的一生>1~4——[苏]格拉宁
一 只有在不实事求是的时候,事实才会叫人感兴趣. 虚构的人物任人摆布,并且纤毫毕露--他的一切想法意图,他的过去和未来,作者都一清二楚. 我还有一个任务:向读者灌输一些有用的知识,介绍些材料. 是一个 ...
- java上传文件获取跟目录的办法
在java中获得文件的路径在我们做上传文件操作时是不可避免的.web 上运行1:this.getClass().getClassLoader().getResource("/"). ...