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;
public class HttpClientDownload {public static <T> List<T> doGetDownload(String url, boolean isHttps, String authorization,Class zclass) {InputStream inputStream = null;org.apache.http.impl.client.CloseableHttpClient httpClient = null;CloseableHttpResponse response = null;List<T> list = new ArrayList<>();try {if (isHttps) {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();}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");response = httpClient.execute(httpGet);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;}public static <T> List<T> readExcelConvertObjectList(InputStream inputStream, ExcelTypeEnum excelTypeEnum, Class<T> classT) {return readExcelConvertObjectList(inputStream, excelTypeEnum, 0,1, classT);}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();}}