使用的是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将数据导入数据库的更多相关文章

  1. 将Excel中数据导入数据库(一)

    在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...

  2. 将Excel中数据导入数据库(三)

    上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入.比如表WQ_SWMSAR_A字段 ...

  3. 将Excel中数据导入数据库(二)

    在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...

  4. 读取Execl表数据 导入数据库

    不知不觉博客园园林都两年多了,我是今年毕业的应届生,最近公司项目需要改动,很多的数据需要导入,很多的实体类需要些.考虑到这些问题自己写了两个winform版的小工具,一个是读取Execl数据导入数据库 ...

  5. Excel表数据导入数据库表中

    ***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为 ...

  6. mysqlconnector将EXCEL表数据导入数据库

    测试excel和脚本放在同一个目录 测试excel和脚本放在同一个目录 #!/usr/bin/env python #coding=utf-8 import xlrd import mysql.con ...

  7. java读取excel文件数据导入mysql数据库

    这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...

  8. Java 用jxl读取excel并保存到数据库(此方法存在局限,仅限本地电脑操作,放在服务器上的项目,需要把文件上传到服务器,详细信息,见我的别的博客)

    项目中涉及到读取excel中的数据,保存到数据库中,用jxl做起来比较简单. 基本的思路: 把excel放到固定盘里,然后前段页面选择文件,把文件的名字传到后台,再利用jxl进行数据读取,把读取到的数 ...

  9. SpringBoot通过Ajax批量将excel中数据导入数据库

    Spring Boot通过Ajax上传Excel并将数据批量读取到数据库中 适合场景:需要通过excel表格批量向数据库中导入信息 操作流程 [1]前端上传一个excel表格 [2] 后端接收这个ex ...

随机推荐

  1. NOIP2018游记-退役之战

    \(Day\ 0\) 从火车站下来坐地铁\(1\)小时,再乘公交车到酒店,还要帮队里一个断腿大佬搬东西,累死我了.. 到酒店就快\(5\)点了,想打个牌也没时间. 酒店的房间很不错,空间大又干净,后来 ...

  2. 设计模式学习心得<代理模式 Proxy>

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式. 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口. 概述 意图 为其他对象提供 ...

  3. python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题

    笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...

  4. https及证书

    本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...

  5. kvm 客户机加载移动硬盘

    1,宿主机安装usbutils yum install usbutils -y 2,插入U盘或者移动硬盘并查看 [root@localhost ~]# lsusb Bus Device : ID 10 ...

  6. Atom使用

    cmd-r 通过方法名查找 ctrl-option-g 跳转至光标所在方法或结构 安装 last-cursor-position 后 alt-- 返回至光标上一次所在位置

  7. ubuntu16.04安装tensorflow1.3

    总结 : 1.点软件个更新-系统更新2.降级gcc到5.33.装CUDA及第二个包,加入PATH4.CUDNN5.Ancada..6.TF Ubuntu16.04 的GCC版本降级 http://bl ...

  8. Linux 第十四天

    6)Bash常用快捷键 快捷键 作用 ctr1+ a 把光标移动到命令行开头.如果我们输入的命令过长,想要把光标移| 动到命令行开头时使用. ctr1+e 把光标移动到命令行结尾. ctr1+c 强制 ...

  9. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  10. 【转】javaUDP套接字通信

    Java UDP网络编程 - 最简单示例   转自 http://blog.csdn.net/wintys/article/details/3525643 /** *UDPServer *@autho ...