Springboot中如何实现Excel导入功能

文旅笔记家 2022-10-06 ⋅ 26 阅读

在开发应用程序时,我们经常会遇到需要从Excel文件中导入数据的需求。Spring Boot提供了许多便捷的方式来实现Excel导入功能,本文将介绍一种简单的实现方法。

1. 添加依赖

首先,我们需要在pom.xml文件中添加相关的依赖。在这个例子中,我们将使用Apache POI库来处理Excel文件。

<dependencies>
    <!-- Apache POI -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
</dependencies>

2. 创建Controller

接下来,我们需要创建一个控制器来处理Excel导入的请求。

import org.apache.poi.ss.usermodel.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@Controller
public class ExcelController {

    @PostMapping("/import")
    public String importExcel(@RequestParam("file") MultipartFile file) throws IOException {
        Workbook workbook = WorkbookFactory.create(file.getInputStream());
        Sheet sheet = workbook.getSheetAt(0);
        Iterator<Row> rowIterator = sheet.iterator();

        List<String> data = new ArrayList<>();

        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();

            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
                data.add(cell.getStringCellValue());
            }
        }

        // 在这里进行数据处理

        return "redirect:/";
    }
}

在这个例子中,我们使用WorkbookFactory类的create方法来创建Workbook对象,然后通过调用getSheetAt方法来获取第一个Sheet对象。通过迭代器遍历每一行的单元格,并将数据存储在一个List中。

请注意,这只是一个简单的示例,您可以根据您的需求来修改和扩展代码。

3. 创建文件上传表单

最后,我们需要创建一个HTML表单来上传Excel文件。

<!DOCTYPE html>
<html>
<head>
    <title>Excel导入</title>
</head>
<body>
    <h1>Excel导入</h1>
    <form method="post" action="/import" enctype="multipart/form-data">
        <input type="file" name="file" accept=".xlsx, .xls">
        <button type="submit">导入</button>
    </form>
</body>
</html>

在这个表单中,我们通过设置enctype属性为multipart/form-data,来支持文件上传。通过设置accept属性为.xlsx, .xls,来指定只接受Excel文件。

总结

通过使用Spring Boot和Apache POI库,实现Excel导入功能变得非常简单。在本文中,我们介绍了如何添加依赖、创建控制器来处理Excel导入请求,以及如何创建文件上传表单。您可以根据自己的需求来扩展和修改代码。希望这篇文章对您有所帮助!


全部评论: 0

    我有话说: