前端:
引用Element-ui的上传组件
<el-upload
class="upload-demo"
drag
action="https://jsonplaceholder.typicode.com/posts/"
multiple>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
简单修改一下,主要是改了action路径
后端
需要注意的有两点:
一串数字类型的字符串需要
String studentId = row.getCell(0).toString();
String ID = new BigDecimal(studentId).toPlainString();
单个数组类型的字符串,比如性别或者状态这种需要
//性别, double转int再转String
String gender = row.getCell(2).toString();
int intValue = 0;
try {
double v = Double.parseDouble(gender);
intValue = (int) v;
} catch (NumberFormatException e) {
// 处理无法解析为数字的情况
}
String value = String.valueOf(intValue);
@PostMapping("/upload_excel")
public void upload_excel(@RequestParam("file") MultipartFile file,HttpServletResponse response) {
String fileName = file.getOriginalFilename();
System.out.println("上传的文件名是:" + fileName);
try {
// 加载Excel文件
Workbook workbook = WorkbookFactory.create(file.getInputStream());
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
//循环每一列,拿到每一行数据
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
Row row = sheet.getRow(rowNum);
// 使用变量接收每一列的值
//id,转换成String格式
String studentId = row.getCell(0).toString();
String ID = new BigDecimal(studentId).toPlainString();
//学生姓名
String name = row.getCell(1).toString();
//性别, double转int再转String
String gender = row.getCell(2).toString();
int intValue = 0;
try {
double v = Double.parseDouble(gender);
intValue = (int) v;
} catch (NumberFormatException e) {
// 处理无法解析为数字的情况
}
String value = String.valueOf(intValue);
//生日
String birthDate = row.getCell(3).toString();
//班级名
String className = row.getCell(4).toString();
//年级名
String grade = row.getCell(5).toString();
LxyStudent lxyStudent = new LxyStudent();
lxyStudent.setStuId(UUID.randomUUID().toString());
lxyStudent.setStuNumber(ID);
lxyStudent.setStuName(name);
lxyStudent.setStuSex(value);
lxyStudent.setClassName(className);
lxyStudent.setStuAge(birthDate);
lxyStudent.setGradeName(grade);
lxyStudentService.insertLxyStudent(lxyStudent);
}
// 关闭Workbook
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
最后如果是若依框架需要将上传接口过滤掉