什么语言做网站简单,电子商务网站开发进什么科目,广州网站建设优化公司哪家好,百度关键词优化软件排名演示灵活导出数据
#x1f389;#x1f389;#x1f389;#x1f389;#x1f389;#x1f389;【小吴小吴bug全无开通公众号】关注公众号获取第一时间博客动态 背景今天临时起兴打开稀土掘金导航栏看到页面推广gitee项目恰巧最近也在学习python了解到python爬虫很厉害【小吴小吴bug全无开通公众号】关注公众号获取第一时间博客动态 背景今天临时起兴打开稀土掘金导航栏看到页面推广gitee项目恰巧最近也在学习python了解到python爬虫很厉害想着能不能用Java把数据爬下来于是在原先框架wu-easy-excel-starter基础上新增demo进行演示测试 实现过程
获取需要获取数据的接口
curl https://e.juejin.cn/resources/gitee \-H accept: */* \-H accept-language: zh-CN,zh;q0.9 \-H content-type: application/json \--data-raw {lang:java,offset:0,limit:30,cursor:0}::: 告诉一个你们都不知道的工具ApiPost 里面有个可以一键将curl命令转换成不同语言的代码
找到生成代码按钮 选择你想要的语言 安装Java wu-easy-excel-starter 依赖
这里使用的是快照哦快照仓库地址放在最下面了 dependencygroupIdtop.wu2020/groupIdartifactIdwu-easy-excel-starter/artifactIdversion1.2.6-JDK17-SNAPSHOT/version/dependency编写代码
获取接口数据 HttpRequest request HttpRequest.newBuilder().uri(URI.create(https://e.juejin.cn/resources/gitee)).header(accept, */*).header(accept-language, zh-CN,zh;q0.9).header(content-type, application/json).method(POST, HttpRequest.BodyPublishers.ofString({\lang\:\java\,\offset\:0,\limit\:30,\cursor\:\0\})).build();HttpResponsebyte[] response HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofByteArray());byte[] body response.body();// 需要导出的数据Map?,? map JsonUtils.parseObject(body, LinkedHashMap.class);System.out.println(map);输出格式
{code: 200,data: [{id: 13010970,title: 小诺/Snowy,username: ,url: https://gitee.com/xiaonuobase/snowy,date: {__type: Date,iso: 2024-05-10T11:45:16.000Z},summary: 最新国内首个国密前后分离快速开发平台采用Vue3AntDesignVue3 ViteSpringBootMpHuToolSaToken。集成国密加解密插件在前后分离框架中实现前后分离“密”不可分同时实现国产化机型、中间件、数据库适配是您的不二之选最后官网提供工作流、多租户、多数据源、Vue3表单设计器等丰富插件灵活使用。,language: Java,category: ,img: [],view: 0,comment: 0,like: 0,hot: 0,collect: 0,langColor: #b07219}]
}导出数据参数配置
配置导出字段
属性数据导出如user.id集合数据导出userList.$id字段导出id
::: tip 如下导出数据中的data中集合属性ID为数据ID、title属性为标题 ::: // 需要导出的数据设置信息ListExportFieldCommand exportFieldCommands new ArrayList();exportFieldCommands.add(new ExportFieldCommand(data.$id,数据ID));exportFieldCommands.add(new ExportFieldCommand(data.$title,标题));exportFieldCommands.add(new ExportFieldCommand(data.$username,用户));exportFieldCommands.add(new ExportFieldCommand(data.$url,地址));exportFieldCommands.add(new ExportFieldCommand(data.$summary,描述));exportFieldCommands.add(new ExportFieldCommand(data.$language,语言));exportFieldCommands.add(new ExportFieldCommand(data.$category,类型));ListEasyExcelFiledPoint easyExcelFiledPointList ExportFieldCommandUtils.exportFieldCommandList2EasyExcelFiledPointList(exportFieldCommands);
导出数据 // 设置导出数据信息DynamicEasyExcelContextHolder.pushOnlyExportField(easyExcelFiledPointList);
// easyExcelPoint.setExcelFiledPointList(easyExcelFiledPointList);// 声明导出文件地址FileOutputStream fileOutputStream new FileOutputStream(easyExcelWorkbookTest.getPath());// 执行导出excelExcelServiceAdapter.exportExcel(map,easyExcelPoint,fileOutputStream);查看数据 完整代码
package com.wu.framework.easy;import com.fasterxml.jackson.databind.ObjectMapper;
import org.wu.framework.core.utils.FileUtil;
import org.wu.framework.core.utils.JsonUtils;
import org.wu.framework.easy.excel.adapter.ExcelExcelServiceAdapter;
import org.wu.framework.easy.excel.endpoint.EasyExcelFiledPoint;
import org.wu.framework.easy.excel.endpoint.EasyExcelPoint;
import org.wu.framework.easy.excel.endpoint.ExportFieldCommand;
import org.wu.framework.easy.excel.factory.ExcelExcelServiceAdapterFactory;
import org.wu.framework.easy.excel.toolkit.DynamicEasyExcelContextHolder;
import org.wu.framework.easy.excel.util.EasyWorkbookTest;
import org.wu.framework.easy.excel.util.ExportFieldCommandUtils;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;/*** 自定义 表头数据导出*/
public class CustomerDataExportTest {public static void main(String[] args) throws IOException, InterruptedException {HttpRequest request HttpRequest.newBuilder().uri(URI.create(https://e.juejin.cn/resources/gitee)).header(accept, */*).header(accept-language, zh-CN,zh;q0.9).header(content-type, application/json).method(POST, HttpRequest.BodyPublishers.ofString({\lang\:\java\,\offset\:0,\limit\:30,\cursor\:\0\})).build();HttpResponsebyte[] response HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofByteArray());byte[] body response.body();// 需要导出的数据Map?,? map JsonUtils.parseObject(body, LinkedHashMap.class);System.out.println(map);// 创建一个导出适配器ExcelExcelServiceAdapter excelExcelServiceAdapter ExcelExcelServiceAdapterFactory.excelExcelServiceAdapter();// 演示导出文件到本地String localClassPath FileUtil.readLocalClassFolder(CustomerDataExportTest.class);File easyExcelWorkbookTest FileUtil.createFile(localClassPath, CustomerDataExportTest.xls);EasyExcelPoint easyExcelPoint new EasyExcelPoint();easyExcelPoint.setSheetName(导出稀土掘金首页Gitee推荐);easyExcelPoint.setUseAnnotation(false);// 不使用注解导出// 需要导出的数据设置信息ListExportFieldCommand exportFieldCommands new ArrayList();exportFieldCommands.add(new ExportFieldCommand(data.$id,数据ID));exportFieldCommands.add(new ExportFieldCommand(data.$title,标题));exportFieldCommands.add(new ExportFieldCommand(data.$username,用户));exportFieldCommands.add(new ExportFieldCommand(data.$url,地址));exportFieldCommands.add(new ExportFieldCommand(data.$summary,描述));exportFieldCommands.add(new ExportFieldCommand(data.$language,语言));exportFieldCommands.add(new ExportFieldCommand(data.$category,类型));ListEasyExcelFiledPoint easyExcelFiledPointList ExportFieldCommandUtils.exportFieldCommandList2EasyExcelFiledPointList(exportFieldCommands);// 设置导出数据信息DynamicEasyExcelContextHolder.pushOnlyExportField(easyExcelFiledPointList);
// easyExcelPoint.setExcelFiledPointList(easyExcelFiledPointList);// 声明导出文件地址FileOutputStream fileOutputStream new FileOutputStream(easyExcelWorkbookTest.getPath());// 执行导出excelExcelServiceAdapter.exportExcel(map,easyExcelPoint,fileOutputStream);System.out.println(map);}
}
当前使用框架地址
快照仓库地址 repositoriesrepositoryidoss.snapshots/idnameoss.sonatype.org/nameurlhttps://oss.sonatype.org/content/repositories/snapshots//urlreleasesenabledfalse/enabled/releasessnapshotsenabledtrue/enabled/snapshots/repository/repositories