java 通过接口下载excel并转实体类工具类

java 通过接口下载excel并转实体类工具类

依赖

        <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency>

工具类


import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.ssl.SSLContextBuilder;
import org.springframework.lang.Nullable;import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;/*** @author dume* @ClassName HttpClientDownload* @description: TODO* @date 2023年11月14日* @version: 1.0*/
public class HttpClientDownload {public static <T> List<T> doGetDownload(String url, boolean isHttps, String authorization,Class zclass) {InputStream inputStream  = null;//1.创建HttpClient对象org.apache.http.impl.client.CloseableHttpClient httpClient = null;CloseableHttpResponse response = null;List<T> list = new ArrayList<>();try {//这里我加了一个是否需要创建一个https连接的判断if (isHttps) {//配置https请求的一些参数SSLContext sslContext = SSLContextBuilder.create().useProtocol(SSLConnectionSocketFactory.SSL).loadTrustMaterial((x, y) -> true).build();RequestConfig config = RequestConfig.custom().setConnectTimeout(60000).setSocketTimeout(60000).build();httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).setSSLContext(sslContext).setSSLHostnameVerifier((x, y) -> true).build();} else {httpClient = HttpClientBuilder.create().build();}//2.生成get请求对象,并设置请求头信息HttpGet httpGet = new HttpGet(url);httpGet.addHeader("Authorization", authorization);httpGet.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");//3.执行请求response = httpClient.execute(httpGet);//4.处理响应信息if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {HttpEntity entity = response.getEntity();inputStream = entity.getContent();list = readExcelConvertObjectList(inputStream,ExcelTypeEnum.XLS,zclass);}} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {try {if (httpClient != null) {httpClient.close();}if (response != null) {response.close();}if (inputStream != null) {inputStream.close();}} catch (IOException e) {e.printStackTrace();}}return list;}/*** 使用Class来读取Excel** @param inputStream   Excel的输入流* @param excelTypeEnum Excel的格式(XLS或XLSX)* @return 返回 ClassList 的列表*/public static <T> List<T> readExcelConvertObjectList(InputStream inputStream, ExcelTypeEnum excelTypeEnum, Class<T> classT) {return readExcelConvertObjectList(inputStream, excelTypeEnum, 0,1, classT);}/*** 读取excel数据到数据对象** @param inputStream 文件流* @param excelTypeEnum 文件类型Excel的格式(XLS或XLSX)* @param headLineNum 开始读取数据的行* @param classT 转为对象的CLASS* @param <T>* @return*/public static <T> List<T> readExcelConvertObjectList(InputStream inputStream, ExcelTypeEnum excelTypeEnum, @Nullable Integer sheet,@Nullable Integer headLineNum, Class<T> classT) {if (headLineNum == null) {headLineNum = 1;}if (sheet == null) {sheet = 0;}return EasyExcel.read(inputStream).excelType(excelTypeEnum).head(classT).sheet(sheet).headRowNumber(headLineNum).doReadSync();}}

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

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

相关文章

161-配置nginx正向代理

为了允许所有请求通过Nginx的正向代理&#xff0c;您需要确保Nginx配置正确&#xff0c;并且能够处理各种请求。您的配置中需要一些调整以确保Nginx能够正确解析请求并代理它们。 以下是调整后的Nginx配置示例&#xff1a; Nginx 配置示例 server {listen 8888;server_name …

[office] 如何才能用EXCEL打开dat文件- #微信#学习方法

如何才能用EXCEL打开dat文件? 方法&#xff1a; 1、打开EXCEL软件&#xff1b; 2、文件&#xff0c;打开&#xff0c;选择要转化的DAT文件&#xff1b; 3、在弹出的向导文件&#xff08;步骤1&#xff09;中&#xff0c;选择合适的文件类型&#xff08;按预览选择&#xf…

shell:dd命令使用详解

1、介绍 dd命令是一款在Unix和类Unix系统中常用的命令行工具&#xff0c;用于转换和复制文件或块设备。 用指定大小的块拷贝一个文件&#xff0c;并在拷贝的同时进行指定的转换。 该命令提供了很多的参数选项&#xff0c;使用户可以根据需要执行各种复制或转换操作。下面详细…

充电桩,未来出行的绿色引擎

随着新能源时代的到来&#xff0c;充电桩早已不再是一个陌生的词汇&#xff0c;它正在成为我们生活中不可或缺的一部分。 它不仅仅是一个简单的充电设备&#xff0c;更是未来出行的绿色引擎&#xff0c;驱动着我们的汽车&#xff0c;也驱动着这个时代的绿色梦想。 想象一下&am…

leetcode 9 回文数

给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&#xff0c;而…

人工智能术语

1、人工智能的概念 人工智能概念&#xff0c;在1956年召开的达特茅斯会议上正式被提出。该会议是由信息学鼻祖克劳德.艾尔伍德.香农(ClaudeElwoodShannon)以及马文.明斯基(Marvin Minsky)、约翰.麦卡锡(JohnMcCarthy)等十位信息学、数学、计算机学的科学先驱&#xff0c;在美国…

智谱AI 发布最新开源模型GLM-4-9B,通用能力超Llama-3-8B,多模态版本比肩GPT-4V

自 2023 年 3 月 14 日开源 ChatGLM-6B 以来&#xff0c;GLM 系列模型受到广泛关注和认可。特别是 ChatGLM3-6B 开源以后&#xff0c;开发者对智谱AI 第四代模型的开源充满期待。 为了使小模型&#xff08;10B 以下&#xff09;具备更加强大的能力&#xff0c;GLM 技术团队进行…

react点击复制数据

主要是用浏览器原生剪贴板 navigator.clipboard.writeText API <div onClick{()>{handleCopyKey(这是要复制的内容)}}>这是要复制的内容</div> const handleCopyKey async (item:string)>{try {await navigator.clipboard.writeText(item);message.success…

[高频]Linux中常见的命令及常见面试题

1. ls&#xff1a;查看当前目录下的文件和子目录 2. cd&#xff1a;切换目录 3. pwd&#xff1a;显示当前所在的目录 4. mkdir&#xff1a;创建目录 5. rm&#xff1a;删除文件或目录 6. cp&#xff1a;复制文件或目录 7. mv&#xff1a;移动文件或目录 8. cat&#xff1a;查看…

Python实现连连看8

4 游戏开始 连连看游戏实际上主要完成的是对玩家鼠标点击事件的处理,也就是对鼠标点击事件的响应。 4.1 添加鼠标点击事件响应 在“1.3.4 在窗口上铺设画布”中提到的将画布pack()到窗口代码之前,写入如下代码,其功能是为鼠标点击事件添加响应。 canvas.bind(<Button…

【操作系统】中断

在操作系统中&#xff0c;中断是一种机制&#xff0c;用于处理来自硬件或软件的异步事件。中断允许设备或任务以事件驱动的方式与操作系统进行交互&#xff0c;使操作系统能够适时地响应和处理这些事件。 当发生一个中断事件时&#xff0c;操作系统会立即中断正在执行的任务并转…

如何从微软官方下载Edge浏览器的完整离线安装包

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 正文内容 📒🚀 官方直链下载🚬 手动选择下载🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在网上搜索Microsoft Edge浏览器的离线安装包时,很多用户都会发现大部分都是在线安装包,无法满足他们在无网络环境下进…

DLL文件修复dffsetup3.3.90,带Keygen

之前分享过DirectX与4DDiGDLLFixer&#xff0c;今天再分享一款&#xff0c;名字叫DLLfiles Fixer&#xff0c;中文版带key你懂的&#xff0c;对于玩游戏人来说&#xff0c;经常因为少了某个dll文件无法运行&#xff0c;DLL-files Fixer能够非常方便的修复。 软件功能 可以消除…

俯视角2D游戏_03 伤害数字容器

制作思路 要创建伤害数字容器需要做以下三件事 创建伤害数字的UI控件(并添加动画效果)创建盛放伤害数字UI的容器应用伤害到伤害数字UI 调用关系 敌人蓝图——>伤害数字容器——>伤害数字UI 详细制作案例 [!NOTE] 需求简述 制作一个拥有动态效果的伤害数字UI&#xff0c…

使用Python实现深度学习模型:Transformer模型

Transformer模型自提出以来&#xff0c;已经成为深度学习领域&#xff0c;尤其是自然语言处理&#xff08;NLP&#xff09;中的一种革命性模型。与传统的循环神经网络&#xff08;RNN&#xff09;和长短期记忆网络&#xff08;LSTM&#xff09;不同&#xff0c;Transformer完全…

BIM分析简明教程

大多数建筑师和工程师都会遇到过建筑信息模型 (BIM) 的概念。 这是一种可以为你的公司带来巨大利益的方法。 建筑信息模型允许你集中项目的信息。 你可以将所有相关数据集中到一个数据库中&#xff0c;而不是处理大量文档。 这样做的好处是显而易见的。 随着你的项目变得越来越…

SQL自动发送邮件的方法有哪些?如何配置?

SQL自动发送邮件设置时的注意事项&#xff1f;邮件群发如何操作&#xff1f; 在现代企业中&#xff0c;自动化流程越来越普遍&#xff0c;SQL自动发送邮件作为其中一项重要功能&#xff0c;能够大大提高工作效率并简化数据管理流程。AokSend将介绍几种实现SQL自动发送邮件的方…

JVM基础知识

一、JVM的内存区域划分 一个进程在运行的时候,会向操作系统申请到内存资源,从来存放程序运行的相关数据。 JVM本质上就是一个java进程,在运行的时候也会从操作系统那搞一块内存&#xff0c;供Java代码执行使用。 JVM又把申请的一块内存根据不同的用途划分出了不同区域。 每一…

酷我音乐 v10.8.2.1 解索SVIP版,畅享无界音乐盛宴!

酷我音乐 v10.8.2.1 解索SVIP版 酷我音乐&#xff0c;一款多功能音乐软件&#xff0c;集成了音乐播放、歌曲下载、歌词同步、在线电台等多项服务。该应用致力于提供高品质的音乐欣赏体验和独特的音乐探索机会&#xff0c;无论用户身处何地。此外&#xff0c;它还支持大量付费高…

eNSP学习——配置RIP抑制接口及单播更新

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建基础的RIP网络 3、配置RIP抑制接口&#xff0c;优化公司网络 4、配置RIP单播更新,恢复网络通信 5、验证另一种抑制接口方式 需要eNSP各种配置命令的点击链接自取&#xf…