在 excel 文件中使用图表随数据更新而更新
好吧, 我其实也不知道怎么及时更新, 所以就……具体的实现逻辑是首先有个模板 excel(xlsm),在这个里面写好你生成图表需要调用的宏,然后在你的这个流程中去拷贝这个模板文件,把你所有更新的数据放进去,再执行文件中的宏,生成 xlsx 文件,然后把原先拷贝的 xlsm 删除(模板文件勿动)就好了
代码如下:
import win32com.client # 导包
xl = win32com.client.Dispatch("Excel.Application")
xl.Workbooks.Open(dst_path) #dst_path为拷贝模板文件后写入数据了的文件
xl.Application.Run("a") # a与wa都是用到的宏
xl.Application.Run("wa")
wb = xl.ActiveWorkbook
xl.DisplayAlerts = False
wb.DoNotPromptForConvert = True
wb.CheckCompatibility = False
wb.SaveAs(final_path, FileFormat=51, ConflictResolution=2) #final_path为最终生成的xlsx文件
xl.Application.Quit()
del xl
xl = None
最终生成如下 xlsx 文件 (数据被图表遮住了)
如果需要把数据显示出来, 可以加个拖动组件
嘿嘿 😎
这个我有考虑过,但是感觉要比我这个复杂些 😂
可以解决后台更改 excel 表格 sheet 名称,不改变表格结构,非常棒。紧跟黄老师步伐 😄
可以考虑不用宏:
1、调出开发者命令,增加单选框 / 多选框
2、创建名称管理器,利用单选框结果作为开关,开则显示有数据,关则显示无数据
3、在创建一个图表,将图表的数据来源关联上名称管理器。
(就可以实现通过勾选按钮显示某一列 / 某几列的数据)
【难点】:①设置复选框。②创建名称管理器调用的函数。
这个必须点赞👍
👍
okkkkkkkkkkkkkkkk
宏不用自己写, 可以录制
宏 怎么写? 固定取某几列数据 生成图表?
https://www.cnblogs.com/meitian/p/8320989.html 是这个样子么?