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 ...
随机推荐
- Saliency Detection: A Spectral Residual Approach
Saliency Detection: A Spectral Residual Approach 题目:Saliency Detection: A Spectral Residual Approach ...
- EasyPR源码剖析(9):字符识别
在上一篇文章的介绍中,我们已经通过相应的字符分割方法,将车牌区域进行分割,得到7个分割字符图块,接下来要做的就是将字符图块放入训练好的神经网络模型,通过模型来预测每个图块所表示的具体字符.神经网络的介 ...
- form表单上传图片文件
import os def upload(request): if request.method == 'GET': img_list = models.Img.objects.all() retur ...
- 文件扩展关联命令(assoc)
assoc 命令: // 描述: (association) --> 联想.关联 显示或修改文件扩展名关联. 如果在没有参数的情况下使用,assoc将显示所有当前文件扩展名关联的列表. // 语 ...
- bower简明入门教程
什么是bower: Bower是一个客户端技术的软件包管理器,它可用于搜索.安装和卸载如JavaScript.HTML.CSS之类的网络资源.其他一些建立在Bower基础之上的开发工具,如YeoMan ...
- ASCII, Unicode, UTF-8, 8进制, 16进制等各种编码学习理解笔记
字符编码的发展历史 Unicode和UTF-8有何区别? 在这个问题下的于洋的最高票回答中,比较完整地介绍了字符编码的发展历史,为了便于记忆,再次简要概括一番. 一个字节:最初一个字节的标准是混乱的, ...
- mybatis中怎样使用having?
1.dao层代码 List<ErgTipSimpleBo> queryListMore(@Param("typeId") Integer typeId,@Param(& ...
- 关于canvas补充说明
上篇文章提到的canvas画布,用到f2组件,组件地址https://gw.alipayobjects.com/os/antv/assets/f2/3.0.0/f2.js或利用npm下载:npm in ...
- go的基本数据类型
一,数据类型的介绍 在go语言中,数据类型是用于声明函数和变量的:数据类型是为了把数据分成所需内存不同大小的数据,除了在需要使用大数据的时候才会申请大内存,这样就会充分的使用内存 Go 语言按类别有以 ...
- 连接EMC存储系统
1.准备一台笔记本电脑,一根网线即可. 2.将网线一头连接笔记本电脑,另一头连接存储.(连接存储的一头应连接到有扳手图标的那一网口上) 3.配置IP地址 IP:128.221.1.254 子网掩码:2 ...