springboot-文件上传xls及POI操作Excel
1、pom导入依赖文件
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
2、采用Multipart接收,设置接收大小
spring.http.multipart.maxFileSize=10Mb
spring.http.multipart.maxRequestSize=10Mb
3、controller层,用@RequestParam接收
@RequestMapping(value = "/resultImport",method = RequestMethod.POST)
@ResponseBody
public ResultBean importResult(@RequestParam("file") MultipartFile file) throws Exception{
ResultBean resultBean =new ResultBean();
String fileName = file.getOriginalFilename();
if(askService.batchImport(fileName,file) ==0){
resultBean.setMsg("上传文件格式不正确");
resultBean.setCode(1);
}else{
resultBean.setMsg("导入成功");
}
return resultBean;
}
4、service层
//客户批量导入
public Integer batchImport(String fileName, MultipartFile file) throws Exception{
boolean notNull = false;
Integer status = 1;
List<ResultInfo> resultList = new ArrayList<>(); if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
String error = "上传文件格式不正确";
status = 0;
return status;
}
boolean isExcel2003 = true;
if (fileName.matches("^.+\\.(?i)(xlsx)$")) {
isExcel2003 = false;
}
InputStream is = file.getInputStream();
Workbook wb = null;
if (isExcel2003) {
wb = new HSSFWorkbook(is);
} else {
wb = new XSSFWorkbook(is);
}
Sheet sheet = wb.getSheetAt(0);
if(sheet!=null){
notNull = true;
}
System.out.println(sheet.getLastRowNum());
for (int r = 1; r < sheet.getLastRowNum()-1; r++) {
Row row = sheet.getRow(r);
if (row == null){
continue;
}
ResultInfo resultInfo = new ResultInfo();
AskUserInfo askUserInfo = new AskUserInfo(); row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);//设置读取转String类型
row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(4).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(5).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(6).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(7).setCellType(Cell.CELL_TYPE_STRING); String testId = row.getCell(1).getStringCellValue();
String name = row.getCell(3).getStringCellValue();
String record = row.getCell(4).getStringCellValue();
String sex = row.getCell(5).getStringCellValue();
String age = row.getCell(6).getStringCellValue(); String idCard = row.getCell(7).getStringCellValue(); if(testId ==null || name ==null || sex==null || age==null){
continue;
} askUserInfo.setName(name);
askUserInfo.setRecord(record);
if(sex.equals("1")){
askUserInfo.setSex(1);
}else{
askUserInfo.setSex(0);
}
askUserInfo.setIdcard(idCard);
askUserInfo.setAge(Integer.parseInt(age));
resultInfo.setTestId(testId);
resultInfo.setCreateTime(new Date()); System.out.println(r + name); AskUserInfo askUserInfo1 =askUserInfoRepository.save(askUserInfo);
resultInfo.setAskUserInfo(askUserInfo1);
resultInfoRepository.save(resultInfo); } return status;
}
5、前端js提交
impData:function(){
var vm = this;
var inputDOM = this.$refs.inputer;
var formdata = new FormData();
formdata.append('file',inputDOM.files[0]);
vm.$http.post('/admin/resultImport',formdata).then(function (res) {
var data = res.data;
if(data.code==0) {
alert("导入成功");
window.history.back(-1);
}
console.log(data);
})
}
6、前端html
<input type="file" placeholder="请选择文件" name="file" ref="inputer">
7、测试
springboot-文件上传xls及POI操作Excel的更多相关文章
- 补习系列(11)-springboot 文件上传原理
目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...
- 【SpringBoot】07.SpringBoot文件上传
SpringBoot文件上传 1.编写html文件在classpath下的static中 <!DOCTYPE html> <html> <head> <met ...
- SpringBoot文件上传与POI的使用
1.使用springboot上传文件 本文所要源码在一个项目中,源码:https://github.com/zhongyushi-git/springboot-upload-download.git. ...
- springboot文件上传下载简单使用
springboot的文件上传比较简单 一.使用默认的Resolver:StandardServletMultipartResolver controller package com.mydemo.w ...
- SpringBoot 文件上传临时文件路径问题
年后放假回来,一向运行OK的项目突然图片上传不了了,后台报错日志如下: java.io.IOException: The temporary upload location [/tmp/tomcat. ...
- SpringBoot文件上传(MVC情况和webFlux情况)
MVC情况 引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...
- springboot 文件上传大小配置
转自:https://blog.csdn.net/shi0299/article/details/69525848 springboot上传文件大小的配置有两种,一种是设置在配置文件里只有两行代码,一 ...
- Jmeter之模拟文件上传、下载接口操作
上周群里有位同学,问我用jmeter怎么上传文件?因好久没用jmeter了,顺便自己也复习下,现整理出来和大家分享 一.准备工作: 上传接口一个(自行开发解决了) 下载接口 ps:没有困难创造困难也要 ...
- SpringBoot文件上传下载
项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载. 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如 ...
随机推荐
- Docker(4):Docker集中化web界面管理平台—Shipyard部署
//关闭防火墙 并禁止自启 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable fir ...
- yaml的用法
yaml是用来读配置文件的. 一般用yaml或者yml结尾创建文件,格式:key: value.然后在用的时候,像打开文件一样读,返回数据可直接转为字典 使用的时候必须先安装模块并导入.安装:pip ...
- 【css】图片垂直水平居中
一.已知宽高的图片实现垂直水平居中 1.借助margin-top负边距实现垂直居中 <!DOCTYPE html> <html> <head> <meta c ...
- 好程序员web前端分享想要学习前端需要学那些课程
好程序员web前端分享想要学习前端需要学那些课程,仔细思考了一下如何回答好这个话题,其实前端是一个涵盖面非常之广泛的一个职位,所需知识体系非常庞杂,与传统语言“想要精一行,必先通一门” 有很大差别, ...
- python-三级菜单-67
menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车之家': ...
- [Alpha阶段]无人转会申请
Alpha阶段无人转会申请 大家好,我们是Water_T团队.我们团队在Alpha阶段较好完成了预期目标,团队成员合作愉快,氛围良好,配合默契,且完成的产品在alpha阶段中是用户可互动.可使用的功能 ...
- 【刷题】牛客网看到的鹅厂ML面筋-部分问题RecSys相关
昨天下午六点半的电话面试,其实我已经有了一个不错的实习offer ,不是特别想去腾讯了,没有太怎么准备,接的电话. 整个面试15分钟,开始就是自我介绍,接着问项目,和上一段百度实习经历.问题大致如下: ...
- Appium 客户端类库
Appium 支持以下语言的客户端类库: 语言 Ruby Python Java JavaScript PHP C# Objective-C 锁定注意,一些方法类似 endTestCoverage() ...
- [百度百科]dir命令指定显示的排序方式
https://jingyan.baidu.com/article/7c6fb428dcf39880642c9095.html 今天工作中遇到了这个需求 感觉很好用 dir /o:d >name ...
- idea标注yml资源配置文件