前端使用 Thymeleaf 上传 Excel 文件

<form method='post' enctype='multipart/form-data' th:action='@{/uploadExcel}'>
  <input type='file' name='excelFile' id='excelFile' />
  <button type='submit'>上传</button>
  <button type='button' onclick='cancel()'>取消</button>
</form>

后端 Spring Boot 代码解析 Excel 文件

@PostMapping("/uploadExcel")
public String uploadExcel(@RequestParam("excelFile") MultipartFile excelFile) {
  try {
    InputStream inputStream = excelFile.getInputStream();
    XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
    XSSFSheet sheet = workbook.getSheetAt(0);
    Iterator<Row> rowIterator = sheet.iterator();
    List<String[]> dataList = new ArrayList<>();
    while (rowIterator.hasNext()) {
      Row row = rowIterator.next();
      Iterator<Cell> cellIterator = row.iterator();
      List<String> cellList = new ArrayList<>();
      while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
        cellList.add(cell.toString());
      }
      dataList.add(cellList.toArray(new String[0]));
    }
    // 存储到数组
    // ...
    return "success";
  } catch (IOException e) {
    e.printStackTrace();
    return "error";
  }
}

代码解释

  1. 前端使用 th:action 指令绑定上传路径,并使用 enctype='multipart/form-data' 指定表单数据类型。
  2. 后端使用 @PostMapping 注解处理 POST 请求,并使用 @RequestParam 注解获取上传的文件。
  3. 使用 MultipartFile.getInputStream() 获取文件输入流,并用 XSSFWorkbook 解析 Excel 文件。
  4. 遍历 Excel 文件中的所有行和单元格,将数据存储到 dataList 列表中。
  5. 最后返回 "success" 或 "error" 字符串,表示上传结果。

注意事项

  • 需要添加 Apache POI 库的依赖。
  • 可以根据实际需求调整代码逻辑,例如处理多个工作表、设置单元格格式等。
  • 数据存储可以使用数据库、缓存或其他方式。
  • 记得添加异常处理机制,保证代码的健壮性。

本教程仅提供一个基本的实现框架,您可以根据实际情况进行调整和扩展。

Spring Boot Thymeleaf 实现 Excel 文件上传并解析数据到数组

原文地址: https://www.cveoy.top/t/topic/oeLW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录