【教程】通过Excel宏/Pandas两种方法来自动添加渐变数据条

        这种数据真的很难看懂:

        一般会对其画折线图或者数据条,相比起来就非常直观:

        但是每一列都要手动这样设置就非常累了,所以这里就用到了VBA宏(或者Pandas)

VBA宏方法

        从这里进入宏:

        随便写一个宏名后点创建:

        这里可以写宏代码:

        最终的效果如图:        

        参考代码:

模块1:

Global History(1 To 5) As Variant
Global HistoryIndex As IntegerSub SaveCurrentState(ws As Worksheet)HistoryIndex = HistoryIndex Mod 5 + 1History(HistoryIndex) = ws.UsedRange.Value
End SubSub Undo(ws As Worksheet)' 检查是否有历史记录可以撤销If HistoryIndex <= 0 ThenMsgBox "No actions to undo.", vbInformationExit SubEnd If' 检查是否有保存的历史状态If IsEmpty(History(HistoryIndex)) ThenMsgBox "No history state to apply.", vbInformationHistoryIndex = HistoryIndex - 1 ' 减少索引,防止重复警告If HistoryIndex < 0 Then HistoryIndex = 0 ' 确保索引不会变成负数Exit SubEnd If' 应用历史状态ws.UsedRange.Value = History(HistoryIndex)History(HistoryIndex) = Empty ' 清除已经使用的历史记录' 更新历史索引,为下一次撤销做准备HistoryIndex = HistoryIndex - 1If HistoryIndex < 0 Then HistoryIndex = 0 ' 确保索引不会变成负数
End SubSub AutoFitColumns(ws As Worksheet)ws.Cells.EntireColumn.AutoFit
End SubSub CenterAlign(ws As Worksheet)ws.Cells.HorizontalAlignment = xlCenterws.Cells.VerticalAlignment = xlCenter
End SubSub ApplyDataBars(ws As Worksheet)Dim lastCol As IntegerDim lastRow As IntegerDim col As IntegerDim cell As RangelastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).ColumnlastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).RowFor col = 2 To lastColFor Each cell In ws.Range(ws.Cells(2, col), ws.Cells(lastRow, col))If IsEmpty(cell.Value) Then cell.Value = 0Next cellWith ws.Range(ws.Cells(2, col), ws.Cells(lastRow, col)).FormatConditions.AddDatabarWith .FormatConditions(.FormatConditions.Count).BarColor.Color = RGB(155, 194, 230).BarFillType = xlDataBarFillGradient.Direction = xlContext.ShowValue = TrueEnd WithEnd WithNext col
End SubSub 数据处理工具箱()UserForm1.Show
End Sub

UserForm1:

Private Sub InitializeHistory()Dim i As IntegerFor i = 1 To 5History(i) = EmptyNext iHistoryIndex = 0
End SubPrivate Sub Button_Execute_Click()Call InitializeHistoryDim ws As WorksheetSet ws = ActiveSheetIf CheckBox_AutoWidth.Value = True ThenCall AutoFitColumns(ws)SaveCurrentState ActiveSheetEnd IfIf CheckBox_CenterAlign.Value = True ThenCall CenterAlign(ws)SaveCurrentState ActiveSheetEnd IfIf CheckBox_DataBars.Value = True ThenCall ApplyDataBars(ws)SaveCurrentState ActiveSheetEnd If
End SubPrivate Sub Button_Undo_Click()Undo ActiveSheet
End Sub

        最后,导出模块,以便共享:

Pandas方法

        参考代码:

excel_file = f'dataset_statistics_{use_model}.xlsx'
with pd.ExcelWriter(excel_file, engine='xlsxwriter') as writer:df.to_excel(writer, index=True, sheet_name='Sheet1')workbook  = writer.bookworksheet = writer.sheets['Sheet1']for idx, col in enumerate(df.columns):col_max_width = max(df[col].astype(str).str.len().max(), len(col))worksheet.set_column(idx, idx, col_max_width)for col_num in range(1, len(df.columns)):worksheet.conditional_format(1, col_num, len(df), col_num, {'type': 'data_bar','bar_color': '#A9CCE3','data_bar_2010': True})

        效果如图:

        比较粗糙,需要精调,没有上面VBA宏的结果好看。

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

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

相关文章

PyTorch项目源码学习(1)

PyTorch PyTorch是一个开源的深度学习框架&#xff0c;项目地址 https://github.com/pytorch/pytorch 在学术工作中的使用频率较高。 其主体由C开发&#xff0c;PyTorch是Torch的Python调用版本。学习PyTorch项目源代码的目的在于学习其中的实现方法与技巧&#xff0c;增加训练…

LangChain 69 向量数据库Pinecone入门

LangChain系列文章 LangChain 50 深入理解LangChain 表达式语言十三 自定义pipeline函数 LangChain Expression Language (LCEL)LangChain 51 深入理解LangChain 表达式语言十四 自动修复配置RunnableConfig LangChain Expression Language (LCEL)LangChain 52 深入理解LangCh…

毕业论文idea

三大模块 分级、分类、系统 多看医学图像处理毕业论文。 Swin Transformer的模型表现不如MobileViT 使用高像素的数据集在云服务器上训练时&#xff0c;如果您发现Swin Transformer的模型表现不如MobileViT&#xff0c;这可能由几个因素导致&#xff1a; 模型架构与数据匹配…

机器视觉在OCR字符检测的应用

在产品质量 检测过程中&#xff0c;对于字符、条码等标识信息的识别、读取、检测是非常重要的一部分&#xff0c;比如在食品饮料包装检测中&#xff0c;生产日期 、保质期 、生产批号 、条码等字符信息是产品管理和追溯必不可缺的&#xff0c;因此利用机器视觉技术进行OCR字符采…

【实用技巧】Windows电脑向iPhone或iPad传输视频方法2:有线传输

一、内容简介 本文介绍如何使用 Windows 电脑向 iPhone 或 iPad 传输视频&#xff0c;以 iPhone 为例&#xff0c;iPad的操作方法类似&#xff0c;本文不作赘述。 二、所需原材料 Windows 电脑&#xff08;有 USB-A 或 USB-C 接口&#xff09;&#xff08;桌面或其它文件夹中…

Web组件的使用

文章目录 1 概述2 加载网页加载在线网页加载本地网页 3 网页缩放文本缩放 4 Web组件事件Web组件处理JS confirm事件 5 Web和JavaScript交互启用JavaScriptWeb组件调用JS方法JS调用Web组件方法 6 处理页面导航7 调试网络应用8 参考链接 1 概述 相信大家都遇到过这样的场景&…

Mixtral Moe代码解读

一直对稀疏专家网络好奇&#xff0c;有些专家没被选中&#xff0c;那么梯度是否为0&#xff0c;这一轮被选中有梯度&#xff0c;下一轮没被选中无梯度&#xff0c;模型可以训练收敛吗&#xff1f; 由于每个token都会选择topk个专家&#xff0c;所以在每一轮epoch中&#xff0c;…

python工具-udp-tcp-client-server-demo

python工具-udp-tcp-client-server-demo server tcp-server: python xxx.py -type tcp -ip “127.0.0.1” -port 1234udp-server: python xxx.py -type udp -ip “127.0.0.1” -port 1234 client python xxx.py -type udp -ip “127.0.0.1” -port 1111python xxx.py -type tc…

依赖Kafka的Go单元测试例解

Kafka[1]是Apache基金会开源的一个分布式事件流处理平台&#xff0c;是Java阵营(最初为Scala)中的一款杀手级应用&#xff0c;其提供的高可靠性、高吞吐量和低延迟的数据传输能力&#xff0c;让其到目前为止依旧是现代企业级应用系统以及云原生应用系统中使用的重要中间件。 在…

pytorch无法把共享内存写入文件

环境&#xff1a; 在容器中跑pytorch模型的训练 问题表现&#xff1a; ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm). Traceback (most recent call last): File "/root/anaconda3/lib/python3.8/m…

flutter getTemporaryDirectory()的使用

下面是上传音视频流的截图&#xff0c;先保存在缓存&#xff0c;然后请求接口&#xff0c;成功或者失败会删除文件。 可以在Device File Explorer查看&#xff0c; Android: 会返回 /data/data//cache 这个目录,是应用私有的缓存目录。 iOS: 会返回 Library/Caches 下的一个…

Java学习笔记-day06-响应式编程Reactor API大全(上)

Reactor 是一个基于响应式编程的库&#xff0c;主要用于构建异步和事件驱动的应用程序。Reactor 提供了丰富的 API&#xff0c;包括创建、转换、过滤、组合等操作符&#xff0c;用于处理异步数据流。以下是一些 Reactor 的主要 API 示例&#xff1a; pom依赖 <dependencyMan…

191. 位1的个数

编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&#xff09;中…

LeetCode 2645. 构造有效字符串的最少插入数

一、题目 1、题目描述 LeetCode 给你一个字符串 word &#xff0c;你可以向其中任何位置插入 "a"、"b" 或 "c" 任意次&#xff0c;返回使 word 有效 需要插入的最少字母数。如果2645. 构造有效字符串的最少插入数 2、接口描述 ​ class Solut…

SpringCloud微服务 【实用篇】| RabbitMQ快速入门、SpringAMQP

目录 一&#xff1a;初始RabbitMQ 1. 同步和异步通讯 1.1 同步调用 1.2 异步调用 2. MQ常见框架 二&#xff1a;RabbitMQ快速入门 1. RabbitMQ概述和安装 2. 常见消息队列模型 3. 快速入门案例 三&#xff1a;SpringAMQP 1. Basic Queue 简单队列模型 2. Work Queu…

Hive事务表转换为非事务表

环境&#xff1a;hive3.1.0 由于建表时默认会建为非事务表 CREATE TABLE bucket_text_table2(column1 string,column2 string,column3 int) CLUSTERED BY (column3) into 5 BUCKETS STORED AS TEXTFILE; 执行完成后&#xff0c;查看默认建表语句&#xff1a; ---------------…

PHP 微信小程序获取 手机号码

PHP代码 $param $_POST; $app_id ""; $app_secret "";$url_get https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid . $app_id . &secret . $app_secret;$tmptoken json_decode(curl($url_get), true);$token $tm…

ORACLE RAC DG文件路径错乱解决办法

最近接手了一个客户的RAC-RAC dg环境的维护,登录上去之后发现dg延迟了8天,由于主库的空间非常紧张,归档日志早就删除了,所以准备使用rman基于scn点的备份恢复的方案恢复dg同步 在备份完成之后,使用新的控制文件进行数据恢复的时候报错datafile 43 not found: 检查了一下发现当…

SpringBoot中使用单例模式+ScheduledExecutorService实现异步多线程任务(若依源码学习)

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_本地运行若依前后端分离-CSDN博客 设计模式-单例模式-饿汉式单例模式、懒汉式单例模式、静态内部类在Java中的使用示例&#xff1a; 设计模式-单例模…

数据库 MySQL 索引的原理

在数据库中&#xff0c;索引是一种重要的数据结构&#xff0c;它用于加快数据的检索速度和提高查询性能。在 MySQL 中&#xff0c;索引的实现基于 B树结构。 索引的基本思想是通过维护一个有序的数据结构&#xff0c;来快速定位和访问表中的数据。B树是一种自平衡的二叉搜索树…