springmvc来实现Excel文件导入easyexcel

目录

1.背景

2.实现

2.1.添加EasyExcel依赖

2.2.创建一个Excel模型对象来映射Excel数据

2.3.创建一个Controller来处理文件上传和解析

3.测试

完美!


1.背景

实际生产中导入数据的功能经常遇到,今天我们来学习使用easyExcel实现导入

2.实现

在Spring MVC中导入Excel文件,可以使用阿里巴巴的EasyExcel库。以下是一个简单的例子,展示了如何使用EasyExcel导入Excel文件。

2.1.添加EasyExcel依赖

首先,添加EasyExcel的依赖到你的pom.xml文件中:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.2.6</version>
</dependency>

2.2.创建一个Excel模型对象来映射Excel数据

然后,创建一个Excel模型对象来映射Excel数据:

import com.alibaba.excel.annotation.ExcelProperty;
 
public class ExcelData {
    @ExcelProperty(index = 0)
    private String column1;
 
    @ExcelProperty(index = 1)
    private String column2;
 
    // 省略getter和setter方法
}

2.3.创建一个Controller来处理文件上传和解析

接下来,创建一个Controller来处理文件上传和解析:

import com.alibaba.excel.EasyExcel;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
 
import java.io.IOException;
import java.util.List;
 
@RestController
public class ExcelController {
   
     /**
     * 文件导入
     * @param dto 普通参数
     * @param file 导入的文件
     * @return
     */
    @PostMapping("/importExcel")
    public String importExcel(UserAddDTO dto,MultipartFile file) {
        try {
            List<ExcelData> list = EasyExcel.read(file.getInputStream())
                    .head(ExcelData.class)
                    .sheet()
                    .doReadSync();
 
            // 处理解析到的数据
            for (ExcelData data : list) {
                // 处理每一行的数据
            }
            return "导入成功";
        } catch (IOException e) {
            e.printStackTrace();
            return "导入失败";
        }
    }
}

在上述代码中,我们定义了一个/importExcel的POST端点,用于接收上传的Excel文件。使用EasyExcel的read方法读取文件,并将读取到的数据映射到我们之前定义的ExcelData类的实例上。最后,你可以在这里添加你自己的逻辑来处理这些数据。

3.测试

代码:

 @Test
    public void addUserByImportExcel() {
        String url = localhost + "/importExcel";
        HttpRequest request = HttpUtil.createPost(url);

        // 普通参数
        Map<String, Object> param = new HashMap<>();
        param.put("partnerId", "1041");
        param.put("status", "0");
        param.put("userType", "2");

        // 上传的文件参数
        File file = new File("H:\\e\\t1.xlsx");
        param.put("file", file);

        request.form(param);
        request.header("token", token);

        System.out.println("请求url:" + url);
        System.out.println("请求参数:" + param);
        String response = request.execute().body();
        System.out.println("请求响应:" + response);
    }

完美!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringMVC导入Excel文件有多种方法,以下是其中一种常见的方法: 1. 准备Excel文件 首先需要准备一个Excel文件,可以使用Microsoft Excel或类似的软件创建。 2. 添加依赖 在pom.xml中添加Apache POI依赖,如下所示: ``` <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> ``` 3. 创建控制器 创建一个Spring MVC控制器来处理文件上传请求。在控制器中添加一个方法,该方法使用MultipartFile参数接收上传的文件,并使用Apache POI读取Excel文件中的数据。 ``` @Controller public class ExcelController { @PostMapping("/upload") public String uploadExcel(@RequestParam("file") MultipartFile file) throws IOException { Workbook workbook = new XSSFWorkbook(file.getInputStream()); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { System.out.print(cell.getStringCellValue() + "\t"); } System.out.println(); } workbook.close(); return "redirect:/success"; } } ``` 4. 定义表单页面 在表单页面中添加一个文件上传组件,并将其提交到控制器中的uploadExcel方法。 ``` <form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="file" /> <button type="submit">上传</button> </form> ``` 5. 运行应用程序 在浏览器中访问表单页面,选择要上传的Excel文件并提交表单。控制器将读取Excel文件中的数据并打印到控制台中。如果上传成功,将重定向到成功页面。 注意事项: - 在上传文件时,应该添加enctype="multipart/form-data"属性到表单标签中,否则文件将无法上传。 - Apache POI提供了许多API来处理Excel文件,可以根据具体需求进行选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值