使用EasyExcel填充Excel并上传至OSS

发布于:2024-08-17 ⋅ 阅读:(124) ⋅ 点赞:(0)

在企业级应用中,经常需要处理数据的导入导出功能。Excel作为最常用的数据交换格式之一,其自动化处理尤为重要。本文将介绍如何使用EasyExcel库来填充Excel模板,并将生成的文件上传到对象存储服务(OSS)。

EasyExcel简介

EasyExcel是一个基于Java的轻量级Excel处理库,支持.xlsx.xls格式,提供了读写Excel的功能。它简化了Excel操作,使得开发者能够用最少的代码完成复杂的Excel处理任务。

环境准备

  • Java开发环境
  • Maven或Gradle用于依赖管理
  • EasyExcel库依赖
  • Spring Boot(可选,用于模拟MultipartFile和文件上传)
  • OSS服务端点和访问凭证

我们需要准备一个Excel模板,模板中的变量用大括号{}表示。

代码实现

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.util.MapUtils;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import org.junit.Test;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;

public class ExcelFillAndUploadTest {

    @Test
    public void simpleFill() throws IOException {
        // 模板文件路径
        String templateFileName = "D:\\Users\\User\\Desktop\\test01.xlsx";
     
        
        // 创建Map用于填充模板
        Map<String, Object> map = MapUtils.newHashMap();
        map.put("name", "张三");
        
        // 使用EasyExcel填充模板到ByteArrayOutputStream
        try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
            EasyExcel.write(outputStream)
                    .withTemplate(templateFileName)
                    .sheet()
                    .doFill(map);
            
            // 创建MockMultipartFile实例
            MultipartFile multipartFile = new MockMultipartFile(
                    "file", // 参数名
                    "original.xlsx", // 原始文件名
                    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // 内容类型
                    outputStream.toByteArray() // 文件内容
            );            
            
            // TODO: 上传文件到OSS的逻辑
             Object obj = remoteOssService.uploadFile(multipartFile, "bizType", "bizNo");
            // 假设上传成功后获取文件ID
             Long fileId = ...;
             System.out.println("文件上传成功,ID: " + fileId);
        }
    }
}

总结

本文介绍了如何使用EasyExcel库来填充Excel模板,并将生成的文件通过Spring的MockMultipartFile上传到OSS服务。通过这种方式,我们可以在自动化测试中模拟文件上传,或者在实际应用中处理用户上传的文件。希望本文能帮助到需要处理Excel文件和OSS上传功能的开发者。


网站公告

今日签到

点亮在社区的每一天
去签到