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代码如 ...
随机推荐
- SQL AVG 函数
定义和用法 AVG 函数返回数值列的平均值.NULL 值不包括在计算中. SQL AVG() 语法 SELECT AVG(column_name) FROM table_name SQL AVG() ...
- 算法学习之BFS、DFS入门
算法学习之BFS.DFS入门 0x1 问题描述 迷宫的最短路径 给定一个大小为N*M的迷宫.迷宫由通道和墙壁组成,每一步可以向相邻的上下左右四格的通道移动.请求出从起点到终点所需的最小步数.如果不能到 ...
- day 23 面向对象二
复习 '''1.面向过程与面向对象 过程:程序流程化,可拓展性差 对象:程序流程多样化,可拓展性强 变量 | 函数 => 属性 | 方法:前者直接使用,通过所属者.语法调用2.拥 ...
- JS 设计模式五 -- 命令模式
概念 命令模式中的命令(command) 指的是 一个执行某些待定事情的指令. 用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系. 例子 假设html结构如下: &l ...
- FreeMarker 入门
目录 FreeMarker是什么 为什么要学习FreeMarker FreeMarker相关站点
- Javascript实现base64的加密解密
//1.加密解密方法使用: //1.加密 var str = '124中文内容'; var base = new Base64(); var result = base.encode(str); // ...
- 腾讯云服务器哪个地区节点好?来ping一下速度就知道了
腾讯云服务器怎么样?速度快吗?相信很多网友在购买云服务器之前都有此疑惑. 本人找了很久也没找到各区域节点的测试速度的域名和IP.即使有也不能批量查看对比哪个区域的速度. 网上都说这个区域节点速度快,那 ...
- 面试题(转载csdn)
转自https://blog.csdn.net/linzhiqiang0316/article/details/80473906 相关概念 面向对象的三个特征 封装,继承,多态,这个应该是人人皆知,有 ...
- codeforces675D
Tree Construction CodeForces - 675D During the programming classes Vasya was assigned a difficult pr ...
- 简单实现SSO
方案一:原理:基于SSO Server 端的登录情况,跳转至SOO-client的各个端. 每次返回一个 ticker 随机票据值识别. 配置服务端 执行 :git clone https://git ...