使用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上传功能的开发者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 异步爬虫:高效数据抓取的现代武器

标题&#xff1a;“Python 异步爬虫&#xff1a;高效数据抓取的现代武器” 在当今信息爆炸的时代&#xff0c;网络爬虫已成为数据采集的重要工具。然而&#xff0c;传统的同步爬虫在处理大规模数据时往往效率低下。本文将深入探讨如何使用 Python 实现异步爬虫&#xff0c;以提…

HTTP?HTTPS?HTTP2.0

Http HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于分布式、协作式、超媒体信息系统的应用层协议。它基于TCP/IP通信协议来传递数据&#xff0c;如HTML文件、图片文件等。以下是HTTP的详细解析&#xff1a; 一、HTTP的基本…

YAML在Spring Boot中的应用

1. 基本语法 YAML使用缩进来表示层级关系&#xff0c;通常使用空格进行缩进&#xff08;推荐使用2个空格&#xff09;。 基本语法示例&#xff1a; key: value nested:key: value list:- item1- item22. 配置文件命名 在Spring Boot中&#xff0c;YAML配置文件通常命名为 a…

手撕C++入门基础

1.C介绍 C课程包括&#xff1a;C语法、STL、高阶数据结构 C参考文档&#xff1a;Reference - C Reference C 参考手册 - cppreference.com cppreference.com C兼容之前学习的C语言 2.C的第一个程序 打印hello world #define _CRT_SECURE_NO_WARNINGS 1 // test.cpp // …

RDKit在数据科学中的应用|药物筛选中的数据清理与标准化

在化学信息学和药物研发的过程中,分子数据的质量至关重要。数据清理与标准化是确保分子库数据一致性、可靠性和可比较性的关键步骤。RDKit 提供了丰富的工具,帮助用户清理和标准化分子数据,从而提高下游分析和建模的准确性。 1 数据清理的重要性 分子数据通常来自多种来源…

获取操作系统的信息(Go语言)

在 Go 语言中&#xff0c;你可以使用 runtime 和 os 包来查看操作系统的信息。以下是一些常见的操作系统信息获取方法&#xff1a; 1. 获取操作系统类型和架构信息 Go 的 runtime 包提供了基本的操作系统和架构信息&#xff1a; package mainimport ("fmt""r…

c_cpp_properties.json、launch.json、 tasks.json

在 Visual Studio Code 中&#xff0c;c_cpp_properties.json、launch.json 和 tasks.json 是三个重要的配置文件&#xff0c;它们的作用如下&#xff1a; c_cpp_properties.json&#xff1a; 这个文件用于配置 C/C 扩展的 IntelliSense、编译器路径和包括路径等。它帮助 VS Co…

Unity Dots学习 (一)

先学习怎么使用&#xff0c;再研究底层代码。Dots大家都有所耳闻。一直没时间研究&#xff0c;最近研究一下 看上图可知&#xff0c;哪怕是CPU的第三级缓存也比内存要快2-5倍。 资料&#xff1a; 《DOTS之路》第零节——前导课(1)——DOTS的5W1H问题_哔哩哔哩_bilibili 《DOT…

快速搭建全向轮小车

总体介绍 使用两块ordive控制ros-mobile app进行控制&#xff0c;odrive通过python可以轻松控制&#xff0c;ros-mobile可以进行与电脑的ros连接充当一个遥控器。 记录代码 读取rosmobile的遥控数据 #!/usr/bin/env python3import threading import time from queue import…

景联文科技:图像标注的类型有哪些?

图像标注是计算机视觉领域中一个非常重要的步骤&#xff0c;它是创建训练数据集的关键组成部分&#xff0c;主要用于帮助机器学习算法理解图像内容。 以下是图像标注的一些主要类型&#xff1a; 1. 边界框标注&#xff1a; • 这是最常见的标注方式之一&#xff0c;通常用于…

多字段聚合查询在Elasticsearch中的实践

Elasticsearch是一个功能强大的搜索引擎&#xff0c;它不仅支持全文搜索&#xff0c;还提供了丰富的聚合功能。聚合可以帮助我们对数据进行分组和统计&#xff0c;从而得到有意义的分析结果。本文将通过Java代码示例&#xff0c;介绍如何在Elasticsearch中实现多字段的聚合查询…

第四范式发布AI+5G视频营销产品 助力精准获客与高效转化

产品上新 Product Release 今天&#xff0c;第四范式AI5G视频电话互动营销产品全新发布。 相较于以往销效率低、互动差、转化差的传统电话外呼和短信营销方式&#xff0c;视频电话互动营销基于AI、5G等技术&#xff0c;可让用户接听电话时观看个性化视频广告并实时互动&#xf…

Unity的UI设计

目录 创建和布局 布局与交互 性能优化 最佳实践 学习资源 Unity UI Toolkit与uGUI和IMGUI之间的具体区别和适用场景是什么&#xff1f; Unity UI Toolkit uGUI IMGUI 如何在Unity中实现响应式UI设计以适应不同设备尺寸&#xff1f; Unity UI性能优化的最新技术和方法…

机器学习:逻辑回归算法实现鸢尾花预测和银行数据处理

1、鸢尾花预测 1、特征选择 2、对特征处理 trainpd.read_excel("鸢尾花训练数据.xlsx") testpd.read_excel("鸢尾花测试数据.xlsx") x_traintrain[["萼片长(cm)","萼片宽(cm)","花瓣长(cm)","花瓣宽(cm)"]] y_tr…

Vue 生命周期详解含demo、面试常问问题案例

Vue 生命周期详解、面试常问问题案例 含 demo 文章目录 Vue 生命周期详解、面试常问问题案例 含 demo一、Vue 生命周期是什么二、Vue 中如何使用生命周期钩子1. **beforeCreate**2. **created**3. **beforeMount**4. **mounted**5. **beforeUpdate**6. **updated**7. **beforeD…

Grafana学习笔记

介绍 Grafana 1.1 什么是 Grafana&#xff1f; Grafana 是一个开源的数据可视化和监控平台&#xff0c;专门设计用于从各种数据源中收集和展示数据。它最初作为一个图表生成工具&#xff0c;用于显示时间序列数据&#xff0c;但已经发展成一个功能强大且灵活的仪表板工具&…

Leetcode 3259. Maximum Energy Boost From Two Drinks

Leetcode 3259. Maximum Energy Boost From Two Drinks 1. 解题思路2. 代码实现 题目链接&#xff1a;3259. Maximum Energy Boost From Two Drinks 1. 解题思路 这一题就是一个动态规划&#xff0c;分别考察下两个数列的选择即可。 2. 代码实现 给出python代码实现如下&a…

Python编写Word文档

目录 0. 安装依赖 1. 创建word文档 2. 添加标题、居中、字体16大小 3. 添加标题一 4. 添加一段话并设置字体颜色 封装函数 5. 换页 6. 插入表格 0. 安装依赖 python-docx1.1.2 1. 创建word文档 from docx import Documentdoc Document() 2. 添加标题、居中、字体1…

SQL - 数据类型

字符串类型 char(10)&#xff0c;存储固定长度字符串 varchar(255)&#xff0c;存储可变长度字符串 mediumtext&#xff0c;中文本&#xff0c;对于存储JSON对象、SCV字符串很好使 longtext&#xff0c;长文本&#xff0c;可以很好地存储教本或许多年地日志文件 tinytext&#…

php-xlswriter实现数据导出excel单元格合并,内容从指定行开始写

最终效果图&#xff1a; 代码&#xff1a; public function export_data() {$list $this->get_list_organ();$content [];$content[] []; // 第2行不设置内容&#xff0c;设置为空foreach ($list as $key > $value) {$content[] [$value[organ_name], $value[clas…