您的位置:首页 > 娱乐 > 明星 > 使用EasyExcel填充Excel并上传至OSS

使用EasyExcel填充Excel并上传至OSS

2025/7/22 5:51:48 来源:https://blog.csdn.net/qq_29752857/article/details/141210316  浏览:    关键词:使用EasyExcel填充Excel并上传至OSS

在企业级应用中,经常需要处理数据的导入导出功能。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 {@Testpublic void simpleFill() throws IOException {// 模板文件路径String templateFileName = "D:\\Users\\User\\Desktop\\test01.xlsx";// 创建Map用于填充模板Map<String, Object> map = MapUtils.newHashMap();map.put("name", "张三");// 使用EasyExcel填充模板到ByteArrayOutputStreamtry (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");// 假设上传成功后获取文件IDLong fileId = ...;System.out.println("文件上传成功,ID: " + fileId);}}
}

总结

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com