【教程】通过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,一经查实,立即删除!

相关文章

LangChain 69 向量数据库Pinecone入门

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

机器视觉在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 概述 相信大家都遇到过这样的场景&…

依赖Kafka的Go单元测试例解

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

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…

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

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

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

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

Python requirements.txt 详解

文章目录 1 概述1.1 作用1.2 注意 2 操作2.1 生成 requirements.txt2.2 安装 requirements.txt 3 示例3.1 新建 Django 项目3.2 找到 Scripts 目录&#xff0c;执行生成 requirements.txt 命令 1 概述 1.1 作用 作用&#xff1a;记录 当前项目下 所有 依赖包及其版本号&#…

不知道题目是啥

本题是学校的集训里的题&#xff0c;所有不知道题目名字是啥&#xff0c;直接看题目就好 解题思路&#xff1a;因为字符串只含有小写字母&#xff0c;所以可以创建两个数组分别来存s和t的每个字母出现次数&#xff0c;然后遍历数组&#xff0c;如果s字符串中的某个字母比t的小&…

输电线路分布式故障诊断装置的四大特点介绍-深圳鼎信

输电线路分布式故障诊断装置是一种利用行波测距、无线通信等技术手段实现电网故障定位的设备。这对于电网的故障处理和恢复具有重要意义&#xff0c;可以帮助运维人员提高故障处理的效率&#xff0c;缩短故障处理时间&#xff0c;减少停电时间&#xff0c;提高用户的供电可靠性…

premiere简约大气3D动画logo片头Pr模板Mogrt免费下载

Premiere简约大气3D动画logo片头pr模板mogrt下载&#xff0c;无需插件&#xff0c;高清分辨率&#xff0c;易于自定义&#xff0c;包括教程&#xff0c;不包括音频和图像。免费下载&#xff1a;https://prmuban.com/37065.html

Linux学习(1):目录结构、编辑器和用户管理

Linux学习&#xff08;1&#xff09;&#xff1a;目录结构、编辑器和用户管理 1 Linux目录结构2 vi和vim编辑器2.1 快捷键练习 3 用户管理3.1 添加用户3.2 删除用户即主目录3.3 切换用户 4 用户组 1 Linux目录结构 在linux世界里&#xff0c;一切皆为文件。 linux目录结构&a…

test fuzz-05-模糊测试 kelinci AFL-based fuzzing for Java

拓展阅读 开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) 开源 Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) test fuzz-01-模糊测试&#xff08;Fuzz Testing&#xff09; test fuzz-…

Gin CORS 跨域请求资源共享与中间件

Gin CORS 跨域请求资源共享与中间件 文章目录 Gin CORS 跨域请求资源共享与中间件一、同源策略1.1 什么是浏览器的同源策略&#xff1f;1.2 同源策略判依据1.3 跨域问题三种解决方案 二、CORS:跨域资源共享简介(后端技术)三 CORS基本流程1.CORS请求分类2.基本流程 四、CORS两种…

Java项目:02 基于ssm超市订单管理系统

项目介绍 基于ssm超市订单管理系统 环境&#xff1a;jdk1.8&#xff0c;mysql5.7&#xff0c;tomcat8.5&#xff0c;maven3.6 软件&#xff1a;IDEA 功能&#xff1a;超市后台管理系统&#xff0c;有订单管理&#xff0c;供应商管理&#xff0c;用户管理&#xff0c;密码修改&…

阿赵UE学习笔记——9、材质和材质实例

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;这次来了解一下UE里面关于材质的一些概念性的东西。 一、材质 材质这个概念&#xff0c;在所有三维软件里面都会有&#xff0c;比如3Dsmax里面的材质球&#xff0c;或者Unity里面的Material…

解决docker run报错:Error response from daemon: No command specified.

将docker镜像export/import之后&#xff0c;对新的镜像执行docker run时报错&#xff1a; docker: Error response from daemon: No command specified. 解决方法&#xff1a; 方案1&#xff1a; 查看容器的command&#xff1a; docker ps --no-trunc 在docker run命令上增加…

【Python】AttributeError: module ‘torch.nn‘ has no attribute ‘HardSigmoid‘

AttributeError: module ‘torch.nn’ has no attribute ‘HardSigmoid’ 这个错误是因为PyTorch的torch.nn模块中并没有HardSigmoid这个函数。是拼写的大小写问题&#xff0c;换成nn.Hardsigmoid()即可。 如下述代码出错。 import torch import torch.nn as nn hard_sigmoid…

自动化的力量可实现更好的供应商风险管理

长期以来&#xff0c;公司一直依赖制造商、服务提供商、供应商或顾问等丰富的外部各方网络来促进整体运营并从外部专业知识或产品中获益。虽然这些合作伙伴关系通常是互惠互利的&#xff0c;但公司也需要意识到第三方甚至第四方供应商带来的潜在风险&#xff0c;并考虑整个供应…