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条数据,分两批入库。

相关推荐
itjinyin2 分钟前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
松☆4 分钟前
C++ 算法竞赛题解:P13569 [CCPC 2024 重庆站] osu!mania —— 浮点数精度陷阱与 `eps` 的深度解析
开发语言·c++·算法
耿雨飞4 分钟前
Python 后端开发技术博客专栏 | 第 06 篇 描述符与属性管理 -- 理解 Python 属性访问的底层机制
开发语言·python
丶小鱼丶5 分钟前
Java虚拟机【JVM】
java·jvm
耿雨飞8 分钟前
Python 后端开发技术博客专栏 | 第 08 篇 上下文管理器与类型系统 -- 资源管理与代码健壮性
开发语言·python
csdn2015_9 分钟前
IDEA配置Continue
java·ide·intellij-idea
2601_9491942628 分钟前
Python爬虫完整代码拿走不谢
开发语言·爬虫·python
c***89201 小时前
python爬虫——爬取全年天气数据并做可视化分析
开发语言·爬虫·python
aq55356001 小时前
C语言、C++和C#:三大编程语言核心差异详解
java·开发语言·jvm
老马95271 小时前
opencode4-在已有项目中增加修改功能
java·后端·ai编程