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

相关推荐
Swift社区35 分钟前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht36 分钟前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht39 分钟前
Swift闭包的本质
开发语言·ios·swift
wjs202441 分钟前
Swift 数组
开发语言
吾日三省吾码2 小时前
JVM 性能调优
java
stm 学习ing2 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc3 小时前
《Python基础》之字符串格式化输出
开发语言·python
弗拉唐3 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi773 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器