当前位置:   article > 正文

Spring Boot框架下实现Excel导入导出_springboot导入导出

springboot导入导出

在Spring Boot框架下,你可以使用Apache POI库来实现Excel的导入和导出功能。Apache POI提供了一组API,用于读取、写入和操作Microsoft Office格式的文件,包括Excel文件。

首先,你需要将Apache POI添加到你的项目中。可以通过Maven或Gradle等构建工具来添加依赖项。

接下来,我将向你展示如何在Spring Boot中实现Excel的导入和导出功能的基本步骤。

  1. 导入Excel文件
@PostMapping("/import")
public String importExcel(@RequestParam("file") MultipartFile file) {
    try (InputStream inputStream = file.getInputStream()) {
        Workbook workbook = WorkbookFactory.create(inputStream);
        Sheet sheet = workbook.getSheetAt(0); // 假设文件中只有一个Sheet

        // 遍历每一行
        for (Row row : sheet) {
            // 遍历每个单元格
            for (Cell cell : row) {
                // 处理单元格数据
                String cellValue = cell.getStringCellValue();
                // ... 进行你的业务逻辑
            }
        }

        // 处理完导入逻辑后的操作
        // ...

        return "Import successful";
    } catch (IOException | InvalidFormatException e) {
        e.printStackTrace();
        return "Import failed";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

在上面的代码中,我们使用MultipartFile接收上传的Excel文件。然后,我们使用WorkbookFactory创建一个Workbook实例来表示Excel文件。接下来,我们获取第一个Sheet并遍历每一行和每个单元格,以处理单元格中的数据。

  1. 导出数据到Excel文件
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) {
    try (Workbook workbook = new XSSFWorkbook()) {
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建标题行
        Row headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("Column 1");
        headerRow.createCell(1).setCellValue("Column 2");
        // ...

        // 填充数据行
        List<DataObject> data = getData(); // 获取要导出的数据
        int rowNum = 1; // 从第二行开始填充数据
        for (DataObject obj : data) {
            Row dataRow = sheet.createRow(rowNum++);
            dataRow.createCell(0).setCellValue(obj.getField1());
            dataRow.createCell(1).setCellValue(obj.getField2());
            // ...
        }

        // 设置响应头
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setHeader("Content-Disposition", "attachment; filename=export.xlsx");

        // 输出Excel文件到响应流
        OutputStream outputStream = response.getOutputStream();
        workbook.write(outputStream);
        outputStream.flush();
    } catch (IOException e) {
        e.printStackTrace();
        // 处理导出失败的情况
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

在上述代码中,我们创建了一个Workbook实例,并在其中创建一个Sheet。然后,我们创建标题行,并使用数据填充数据行。最后,我们将生成的Excel文件写入HttpServletResponse的输出流,以便将文件发送到客户端进行下载。

请注意,这只是一个基本示例,你可以根据自己的需求进行更多的定制和优化。同时,你还可以使用其他Apache POI提供的功能来操作Excel文件,例如设置单元格样式、合并单元格等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/321513
推荐阅读
相关标签
  

闽ICP备14008679号