springBoot项目中excel表的导入

springBoot项目中excel表的导入

最近写了一个关于学生信息excel表导入到数据库的接口,记录一下加强记忆理解,也为以后容易复用

导入的思路就是前端导入excel表,后端用MultipartFile接收到,拿到文件流后,用导入的那一套操作将流中的数据取出来放到List中(其他形式接收应该也可以,看业务需求),然后再将得到的List做保存到数据库中,导入完成。

下面是具体实现
  • 导入的excel表格的样式是这样的:
    在这里插入图片描述
  • 第一步导入相关的jar包(j具体包应该用不了这么多,但是导进去也无妨,有些包和导出有关系):
<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.xmlbeans</groupId>
                    <artifactId>xmlbeans</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>3.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>4.1.1</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.1.1</version>
        </dependency>
  • 第二步:controller层写接口:
/***
     *  导入excel,新增学生
     **/
    @ApiOperation(value = "导入excel,新增学生")
    @PostMapping("/importExcel")
    public ResponseMessage exportExcel (@RequestParam(value = "file", required = true) MultipartFile file)throws Exception {
   
        //获取文件名
        String fileName = file.getOriginalFilename();
        //获取输入流
        InputStream inputStream = file.getInputStream();
        List<Map<String,String>> mapList = excelService.importExcel(inputStream, fileName);
        studentService.saveStudent(mapList);
        return  Result.success();
    }
  • 第三步:核心实现service,这一步改掉了,在这里就不删了
package com.jero.combined.server.modules.user.service.impl;

import com.jero.combined.server.modules.user.entity.StudentEO;
import com.jero.common.exception.JeroBaseException;
import com.jero.common.utils.StringUtils;
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是Spring Boot使用Easy Excel实现Excel导入的步骤: 1. 添加Easy Excel依赖 在pom.xml文件添加Easy Excel的依赖: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.3.0</version> </dependency> ``` 2. 创建Excel实体类 创建一个实体类,用于映射Excel的数据,例如: ``` @Data public class User { @ExcelProperty(value = "姓名", index = 0) private String name; @ExcelProperty(value = "年龄", index = 1) private Integer age; @ExcelProperty(value = "性别", index = 2) private String gender; } ``` 3. 编写Excel读取器 创建一个ExcelReader类,用于读取Excel文件的数据: ``` @Component public class ExcelReader { public List<User> readExcel(MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); ExcelReader excelReader = EasyExcel.read(inputStream, User.class, new ExcelListener()).build(); ReadSheet readSheet = EasyExcel.readSheet(0).build(); excelReader.read(readSheet); excelReader.finish(); return ExcelListener.getData(); } } ``` 其ExcelListener是一个继承了AnalysisEventListener的类,用于读取Excel的数据并保存到一个List: ``` public class ExcelListener extends AnalysisEventListener<User> { private static List<User> dataList = new ArrayList<>(); @Override public void invoke(User user, AnalysisContext analysisContext) { dataList.add(user); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } public static List<User> getData() { return dataList; } } ``` 4. 创建Controller接口 创建一个Controller接口,用于接收上传的Excel文件,调用ExcelReader读取Excel文件的数据,并返回读取到的数据: ``` @RestController @RequestMapping("/excel") public class ExcelController { @Autowired private ExcelReader excelReader; @PostMapping("/import") public List<User> importExcel(@RequestParam("file") MultipartFile file) throws IOException { return excelReader.readExcel(file); } } ``` 5. 测试导入Excel 启动Spring Boot应用程序,使用Postman等工具发送POST请求,上传Excel文件并测试导入功能。 以上就是使用Spring Boot和Easy Excel实现Excel导入的步骤,希望对你有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值