Excel 导入实例

在上一节的基础上,本文演示下如何导入excel数据。

Excel导入操作指导

  1. 继承ocean-easyexcel SDK,上一节打包生成
java 复制代码
<dependency>
    <groupId>com.angel.ocean</groupId>
    <artifactId>ocean-easyexcel</artifactId>
    <version>1.0.0</version>
</dependency>
  1. 定义Excel数据导入模型
java 复制代码
package com.angel.ocean.domain.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

/**
 * Excel导入数据结构样例
 */
@Data
public class UserDataImportDTO {

    @ExcelProperty("用户名")
    private String username;

    @ExcelProperty("密码")
    private String password;

    @ExcelProperty("注册时间")
    private String createTime;
}
  1. 定义Excel数据导入业务类UserDataImportService,实现ExcelImportDataHandler,对导入数据进行处理
java 复制代码
package com.angel.ocean.service;

import com.angel.ocean.domain.dto.UserDataImportDTO;
import com.angel.ocean.excel.ExcelImportDataHandler;
import java.util.List;

public class UserDataImportService implements ExcelImportDataHandler<UserDataImportDTO> {

    private UserService userService;

    public UserDataImportService(UserService userService) {
        this.userService = userService;
    }

    @Override
    public void handler(List<UserDataImportDTO> data) {
        userService.excelImport(data);
    }
}
java 复制代码
package com.angel.ocean.service;

import com.alibaba.fastjson2.JSON;
import com.angel.ocean.domain.dto.UserDataImportDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;

@Slf4j
@Service
public class UserService {

    public void excelImport(List<UserDataImportDTO> data) {
        log.info("{}", JSON.toJSONString(data));
    }
}
  1. 定义Excel数据导入业务接口
java 复制代码
@PostMapping("import")
public ApiResult<?> importExcel(@RequestParam("file") MultipartFile file) throws IOException {

    InputStream inputStream = file.getInputStream();
    Integer sheetNo = 0;
    Integer headRowNumber = 1;
    ExcelImportDataHandler excelImportDataHandler = new UserDataImportService(userService);
    EasyExcelUtil.readExcel(excelImportDataHandler, inputStream, UserDataImportDTO.class, sheetNo, headRowNumber);

    return ApiResult.success();
}

Excel导入结果

需要导入Excel数据截图,总共16条数据:
Excel导入接口演示:

服务端导入数据打印信息,可以看出16条数据,分两批入库。

相关推荐
Codebee2 分钟前
“自举开发“范式:OneCode如何用低代码重构自身工具链
java·人工智能·架构
程序无bug18 分钟前
手写Spring框架
java·后端
程序无bug20 分钟前
Spring 面向切面编程AOP 详细讲解
java·前端
软件黑马王子25 分钟前
C#系统学习第八章——字符串
开发语言·学习·c#
阿蒙Amon27 分钟前
C#读写文件:多种方式详解
开发语言·数据库·c#
全干engineer32 分钟前
Spring Boot 实现主表+明细表 Excel 导出(EasyPOI 实战)
java·spring boot·后端·excel·easypoi·excel导出
Da_秀35 分钟前
软件工程中耦合度
开发语言·后端·架构·软件工程
Fireworkitte41 分钟前
Java 中导出包含多个 Sheet 的 Excel 文件
java·开发语言·excel
GodKeyNet1 小时前
设计模式-责任链模式
java·设计模式·责任链模式
a_Dragon11 小时前
Spring Boot多环境开发-Profiles
java·spring boot·后端·intellij-idea