当前位置: 首页 > news >正文

【Java 演示灵活导出数据】

演示灵活导出数据

🎉🎉🎉🎉🎉🎉【小吴小吴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;q=0.9' \-H 'content-type: application/json' \--data-raw '{"lang":"java","offset":0,"limit":30,"cursor":"0"}'

::: 告诉一个你们都不知道的工具ApiPost 里面有个可以一键将curl命令转换成不同语言的代码

找到生成代码按钮

在这里插入图片描述

选择你想要的语言

在这里插入图片描述

安装Java wu-easy-excel-starter 依赖

这里使用的是快照哦(快照仓库地址放在最下面了)

        <dependency><groupId>top.wu2020</groupId><artifactId>wu-easy-excel-starter</artifactId><version>1.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;q=0.9").header("content-type", "application/json").method("POST", HttpRequest.BodyPublishers.ofString("{\"lang\":\"java\",\"offset\":0,\"limit\":30,\"cursor\":\"0\"}")).build();HttpResponse<byte[]> 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": "最新:💖国内首个国密前后分离快速开发平台💖,采用Vue3+AntDesignVue3 + Vite+SpringBoot+Mp+HuTool+SaToken。集成国密加解密插件,在前后分离框架中,实现前后分离“密”不可分;同时实现国产化机型、中间件、数据库适配,是您的不二之选;最后官网提供工作流、多租户、多数据源、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属性为标题
:::

        // 需要导出的数据设置信息List<ExportFieldCommand> 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","类型"));List<EasyExcelFiledPoint> 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;q=0.9").header("content-type", "application/json").method("POST", HttpRequest.BodyPublishers.ofString("{\"lang\":\"java\",\"offset\":0,\"limit\":30,\"cursor\":\"0\"}")).build();HttpResponse<byte[]> 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);// 不使用注解导出// 需要导出的数据设置信息List<ExportFieldCommand> 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","类型"));List<EasyExcelFiledPoint> 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);}
}

当前使用框架地址

快照仓库地址

    <repositories><repository><id>oss.snapshots</id><name>oss.sonatype.org</name><url>https://oss.sonatype.org/content/repositories/snapshots/</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>

相关文章:

【Java 演示灵活导出数据】

演示灵活导出数据 &#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;【小吴小吴bug全无开通公众号】关注公众号获取第一时间博客动态 背景今天临时起兴打开稀土掘金导航栏看到页面推广gitee项目恰巧最近也在学习python了解到python爬虫很厉害&…...

一对一WebRTC视频通话系列(六)——部署到公网

本系列博客主要记录一对一WebRTC视频通话实现过程中的一些重点&#xff0c;代码全部进行了注释&#xff0c;便于理解WebRTC整体实现。 本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习&#xff0c;梳理总结后写下文章&#xff0c;对音视频相关内容感…...

【数据结构】线性表----链表详解

数据结构—-链表详解 目录 文章目录 链表的定义链表的构成链表的分类双向和单向带头和不带头循环和不循环 链表的命名基本操作的实现初始化打印取值查找插入指定位置插入删除删除销毁 部分其他链表的代码实现循环链表双向链表 优点/缺点&#xff08;对比顺序表&#xff09;优点…...

【小程序】小程序如何适配手机屏幕

小程序如何适配手机屏幕 1. 使用rpx单位2. 百分比布局3. 弹性盒子&#xff08;Flexbox&#xff09;和网格布局4. 媒体查询5. 响应式布局6. 测试和调试 1. 使用rpx单位 rpx&#xff08;responsive pixel&#xff09;是小程序中的一种长度单位&#xff0c;可以根据屏幕宽度进行自…...

第15节 编写shellcode加载器

我最近在做一个关于shellcode入门和开发的专题课&#x1f469;&#x1f3fb;‍&#x1f4bb;&#xff0c;主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料&#xff0c;内容里面的每一个环境我都亲自测试实操过的记录&#xff0c;有需要的小伙伴可以参考…...

JAVA学习-练习试用Java实现爬楼梯

问题: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整数。 示例 1&#xff1a; 输入&#xff1a; 2 输出&#xff1a; 2 解释&#xff1a; 有两种方法可以爬到楼…...

[SWPUCTF 2021 新生赛]PseudoProtocols、[SWPUCTF 2022 新生赛]ez_ez_php

[SWPUCTF 2021 新生赛]PseudoProtocols 打开环境&#xff0c;提示hint.php就在这里&#xff0c;且含有参数wllm 尝试利用PHP伪协议读取该文件 ?wllmphp://filter/convert.base64-encode/resourcehint.php//文件路径php://filter 读取源代码并进行base64编码输出。 有一些敏…...

Hive-拉链表的设计与实现

Hive-拉链表的设计与实现 在Hive中&#xff0c;拉链表专门用于解决在数据仓库中数据发生变化如何实现数据存储的问题。 1.数据同步问题 Hive在实际工作中主要用于构建离线数据仓库&#xff0c;定期的从各种数据源中同步采集数据到Hive中&#xff0c;经过分层转换提供数据应用…...

AI应用案例:会议纪要自动生成

以腾讯会议转录生成的会议记录为研究对象&#xff0c;借助大模型强大的语义理解和文本生成等能力&#xff0c;利用指令和文本向量搜索实现摘要总结、要点提取、行动项目提取、会议纪要生成等过程&#xff0c;完成会议纪要的自动总结和生成&#xff0c;降低人工记录和整理时间成…...

基于光纤技术的新能源汽车电池安全监测--FOM²系统

为什么要进行动力电池包的温度监测&#xff1f; 新能源电动汽车的动力电池包的工作温度&#xff0c;不仅会影响电池包性能&#xff0c;而且直接关系到车辆安全。时有发生的新能源汽车电池包起火事件&#xff0c;对电池包、冷却系统以及电池管理系统&#xff08;BMS&#xff09…...

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; #Options local_llm llama3 llm ChatOllama(modellocal_llm, format"json", temperature0) #embeddings #embeddings OllamaEmbeddings(model"nomic-embed-text") embed…...

Spring MVC(三) 参数传递

1 Controller到View的参数传递 在Spring MVC中&#xff0c;把值从Controller传递到View共有5中操作方法&#xff0c;分别是。 使用HttpServletRequest或HttpSession。使用ModelAndView。使用Map集合使用Model使用ModelMap 使用HttpServletRequest或HttpSession传值 使用HttpSe…...

常见加解密算法02 - RC4算法分析

RC4是一种广泛使用的流密码&#xff0c;它以其简洁和速度而闻名。区别于块密码&#xff0c;流密码特点在于按位或按字节来进行加密。 RC4由Ron Rivest在1987年设计&#xff0c;尽管它的命名看起来是第四版&#xff0c;实际上它是第一个对外发布的版本。 RC4算法的实施过程简洁…...

如何使用 ERNIE 千帆大模型基于 Flask 搭建智能英语能力评测对话网页机器人(详细教程)

ERNIE 千帆大模型 ERNIE-3.5是一款基于深度学习技术构建的高效语言模型&#xff0c;其强大的综合能力使其在中文应用方面表现出色。相较于其他模型&#xff0c;如微软的ChatGPT&#xff0c;ERNIE-3.5不仅综合能力更强&#xff0c;而且在训练与推理效率上也更高。这使得ERNIE-3…...

Java全局异常处理,@ControllerAdvice异常拦截原理解析【简单易懂】

https://www.bilibili.com/video/BV1sS411c7Mo 文章目录 一、全局异常处理器的类型1-1、实现方式一1-2、实现方式二 二、全局异常拦截点2-1、入口2-2、全局异常拦截器是如何注入到 DispatcherServlet 的 三、ControllerAdvice 如何解析、执行3-1、解析3-2、执行 四、其它4-1、设…...

代码随想录35期Day38-Java(Day37休息)

Day38题目 LeetCode509.斐波那契数列 核心思想:很简单dp[i]dp[i-1]dp[i-2].这里用了数组存储的形式,也可以递归 class Solution {public int fib(int n) {int[] dp new int[n2];dp[0] 0;dp[1] 1;for(int i 2 ; i < n ; i ){dp[i] dp[i-1] dp[i-2];}return dp[n];} …...

力扣HOT100 - 739. 每日温度

解题思路&#xff1a; 单调栈 class Solution {public int[] dailyTemperatures(int[] temperatures) {int length temperatures.length;int[] ans new int[length];Deque<Integer> stack new LinkedList<>();for (int i 0; i < length; i) {int temperatu…...

【爬虫之scrapy框架——尚硅谷(学习笔记one)--基本步骤和原理+爬取当当网(基本步骤)】

爬虫之scrapy框架——基本原理和步骤爬取当当网&#xff08;基本步骤&#xff09; 下载scrapy框架创建项目&#xff08;项目文件夹不能使用数字开头&#xff0c;不能包含汉字&#xff09;创建爬虫文件&#xff08;1&#xff09;第一步&#xff1a;先进入到spiders文件中&#x…...

C++ QT设计模式:责任链模式

基本概念 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;将请求沿着处理链传递&#xff0c;直到有一个对象能够处理为止。 实现的模块有&#xff1a; Handler&#xff08;处理者&#xff09;&#xff1a;定义一个处理…...

基于springboot+mybatis+vue的项目实战之(后端+前后端联调)

步骤&#xff1a; 1、项目准备&#xff1a;创建数据库&#xff08;之前已经创建则忽略&#xff09;&#xff0c;以及数据库连接 2、建立项目结构文件夹 3、编写pojo文件 4、编写mapper文件&#xff0c;并测试sql语句是否正确 5、编写service文件 6、编写controller文件 …...

Pipeline五大核心要素拆解:从输入到输出的自动化流程设计

1. 项目概述&#xff1a;为什么我们需要拆解Pipeline的基本要素&#xff1f;在任何一个涉及流程化、自动化处理的领域&#xff0c;无论是软件开发中的CI/CD&#xff08;持续集成/持续部署&#xff09;&#xff0c;还是数据科学中的数据预处理与分析&#xff0c;甚至是制造业中的…...

Adams 多体动力学:工业仿真的黄金标准与未来引擎

Adams&#xff08;Automatic Dynamic Analysis of Mechanical Systems&#xff09;是全球多体动力学仿真领域的标杆软件&#xff0c;由 MSC Software 公司开发&#xff08;现隶属于 Hexagon 集团&#xff09;&#xff0c;凭借领先的虚拟样机技术&#xff0c;成为汽车、航空航天…...

谷歌AI掌门竟是死敌大股东!“DeepMind黑手党”四年卷走140亿美元

谷歌AI掌门竟是死敌大股东&#xff0c;“DeepMind黑手党”四年卷走140亿美元&#xff01;就在刚刚&#xff0c;全球科技圈爆出惊人消息——谷歌AI最高掌门人、DeepMind创始人、诺贝尔奖得主Demis Hassabis&#xff0c;被挖出是其最大死敌、超级独角兽Anthropic的早期隐秘金主&a…...

提示词失效?双色调渲染偏色?深度解析Midjourney色彩空间转换机制,精准锁定sRGB→Lab双色域锚点

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;提示词失效&#xff1f;双色调渲染偏色&#xff1f;深度解析Midjourney色彩空间转换机制&#xff0c;精准锁定sRGB→Lab双色域锚点 当用户在Midjourney中输入高饱和度提示词&#xff08;如“vibrant cyan neo…...

6. 网络优化方法之 学习率 优化/衰减策略

1. 学习率优化如图&#xff1a;学习率0.01时收敛速度很慢&#xff0c;学习率0.1时收敛速度变快&#xff0c;学习率越大 收敛速度越快&#xff1b; 学习率0.2 即学习率较大是会 来回震荡&#xff0c;学习率0.3 即学习率过大时会发生 梯度爆炸&#xff08;即远远超出所在范围&…...

CANN/pypto:Tensor构造函数

pypto.Tensor构造函数 【免费下载链接】pypto PyPTO&#xff08;发音: pai p-t-o&#xff09;&#xff1a;Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品…...

static-php-cli跨平台构建实战:Linux、macOS、Windows全攻略

static-php-cli跨平台构建实战&#xff1a;Linux、macOS、Windows全攻略 【免费下载链接】static-php-cli Build standalone portable PHP binaries on Linux, macOS, Windows, with PHP project together, with popular extensions included. 项目地址: https://gitcode.com…...

python健身服务管理系统_健身房教练预约系统qeif6f6f

目录同行可拿货,招校园代理 ,本人源头供货商项目概述核心功能技术实现项目特点应用场景项目技术支持源码获取详细视频演示 &#xff1a;同行可合作点击我获取源码->获取博主联系方式->进我个人主页-->同行可拿货,招校园代理 ,本人源头供货商 项目概述 Python健身服务…...

技术债的“利息”怎么算?一个让非技术领导也能理解的比喻

一、从“信用卡账单”到“技术债利息”&#xff1a;一个通俗的起点软件测试从业者对“技术债”这个词绝不陌生&#xff0c;每次面对历史代码里的“隐秘角落”&#xff0c;看着新功能开发时层出不穷的连锁Bug&#xff0c;我们都能直观感受到技术债带来的拖累。但要向非技术领导解…...

Windows下C语言编译指南

学习C语言入门有一定难度&#xff0c;需勤加练习。多数人使用Windows系统&#xff0c;那么在Windows环境下如何编译运行C语言程序&#xff1f;掌握合适工具与方法是关键。1、 学习C语言时&#xff0c;我使用的是Visual C 6.0编译器。如今&#xff0c;Windows系统下还可使用功能…...