gpt4 book ai didi

python - 如何使用 win32com python 创建和编辑时间线切片器?

转载 作者:行者123 更新时间:2023-12-04 09:31:18 24 4
gpt4 key购买 nike

我正在尝试使用 win32com python 创建一个时间线切片器。我目前正在使用 win32com 操作 excel 数据,但在数据中,我的客户希望我将时间线切片器的上限和下限设置为某个月份。我用谷歌搜索了很多,我得出的结论是,我能做到这一点的唯一方法是在 VBA 中编码并在 python 中实现它,如 here .我没有 VBA 经验,我想知道是否有一种方法可以使用 win32com python 而不是 VBA win32com python。
编辑:
在 Excel 中使用“分配宏”后,这是关于我的时间切片器的代码:

ActiveWorkbook.SlicerCaches("NativeTimeline_Goods_Receipt_Date").TimelineState. _
SetFilterDateRange "01/01/2020", "30/04/2020"
现在我需要将其更改为 python 并将开始日期和结束日期分配给变量。到目前为止,我有这个:
from win32com.client import Dispatch
excel = win32.gencache.EnsureDispatch('Excel.Application')
test_wb = excel.Workbooks.Open(test_file)
date_sl = test_wb.SlicerCaches("NativeTimeline_Goods_Receipt_Date")

最佳答案

显然在 Excel 中,其中有一个程序可以记录您单击的任何内容,因此如果您想操作过滤器/切片器,可以右键单击该元素,然后选择“分配宏”。然后您可以点击离开,因为它会记录您的点击。完成后,您可以通过再次选择“Assign Macro”来查看它,然后会出现一个弹出窗口,您可以选择 your_filter/slicer_name_Click,它会为您提供 VBA 代码。您所要做的就是更改它以使其适合 python 格式。
更新了将 VBA 转换为 python 代码的答案:
引用 this链接,我能够将 VBA 转换为 python 代码并根据您选择的日期调整日期。
所以VBA代码是这样的:

ActiveWorkbook.SlicerCaches("NativeTimeline_Goods_Receipt_Date").TimelineState. _
SetFilterDateRange "01/01/2020", "30/04/2020"
它的python版本是:
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.DisplayAlerts = False
excel.Visible = True
test_wb = excel.Workbooks.Open(test_file, None, False)
date_sl = test_wb.SlicerCaches("NativeTimeline_Goods_Receipt_Date")
date_sl.TimelineState.SetFilterDateRange("01/01/2020", "30/04/2020")
就我而言,我需要根据我运行代码的时间等更改要设置的日期,这样我就可以将日期分配给一个变量并用它替换硬编码的日期。

关于python - 如何使用 win32com python 创建和编辑时间线切片器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62829262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com