使用python和win32com的Excel透视表过滤器

2024-09-26 22:54:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pivot表,它的列名为asset_name,可能的筛选值为FCG~11J.6::~ABC-01~GF1234567004FCG~11J.7::~ABC-03~GF1907505749FCG~11J.9::~ABC-04~GF1907505742等等

我正在尝试使用下面的命令应用筛选器

pt_ws.PivotTables(pt_name).PivotFields("asset_name").ClearAllFilters()
pt_ws.PivotTables(pt_name).PivotFields("asset_name").PivotFilters.Add(21, None, "ABC-01")

21=xlCaptionContains(筛选包含指定字符串的所有标题)。更多信息XlPivotFilterType enumeration

但它抛出了一个错误

File "C:\PivotFilters.py", line 35, in Add
ret = self._oleobj_.InvokeTypes(181, LCID, 1, (9, 0), ((3, 1), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17)),Type

com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None)

我目前使用的解决方法是将筛选值直接写入单元格

pt_ws.Cells(3, 2).Value = "FCG~11J.6::~ABC-01~GF1234567004"

但是我想使用filter命令,因为它更灵活,因为XlPivotFilterType

谢谢


Tags: name命令noneaddptwsassetpivot

热门问题