行业知识
Java 使用multipartFile对象解析Execl
2026-10-26 13:58:17
来源:互联网转载
1.需要使用 multipartFile 包 package org.springframework.web.multipart;
()2.数据校验
public String exportVehicleViol(MultipartFile multipartFile) { try { //对前端传递的文件进行校验 if (multipartFile == null && multipartFile.getSize() == 0) { return "文件上传错误,重新上传"; } //获取文件名称 判断文件是否为 Execl String filename = multipartFile.getOriginalFilename(); if (!(filename.endsWith(".xls") || filename.endsWith(".xlsx"))) { return "文件上传格式有误,请重新上传"; } List ehicleViolations = null; InputStream inputStream = multipartFile.getInputStream(); //根据文件格式 对应不同的api解析 if (filename.endsWith(".xlsx")) { ehicleViolations = readXlsx(inputStream); } else { ehicleViolations = readXls(inputStream); } //数据保存 saveBatch(ehicleViolations); } catch (IOException e) { e.printStackTrace(); } return JsonResult.Success("导入成功"); } 3.主要解析的业务逻辑
()①解析xls
//解析xls private List readXls(InputStream inputStream) throws IOException { HSSFWorkbook sheets = new HSSFWorkbook(inputStream); //读取第一张sheet HSSFSheet sheetAt = sheets.getSheetAt(0); List ehicleViolatsion = new ArrayList(); //rowNum = 3 从第三行开始获取值 for (int rowNum = 3; rowNum ②解析xlsx
//解析xlsx private List readXlsx(InputStream inputStream) throws IOException { XSSFWorkbook sheets1 = new XSSFWorkbook(inputStream); XSSFSheet sheetAt1 = sheets1.getSheetAt(0); List ehicleViolatsion = new ArrayList(); //rowNum = 3 从第三行开始获取值 for (int rowNum = 3; rowNum 注意:对于不同的Execl Java提供了不同的解析对象
xls使用HSSFWorkbook 对象进行解析
xlsx使用XSSWorkbook 对象进行解析