繁体   English   中英

通过 win32com 在 Python 中使用 Excel 数据透视表过滤器

[英]Excel pivot table filter in Python via win32com

我真的很努力地尝试通过 win32com 找到如何在 Python 中执行这些简单的 VBA 代码行,但我找不到如何正确执行它:

ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarters").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields("Effective deadline"). _
    PivotFilters.Add2 Type:=xlBefore, Value1:="10/10/2017"

运行这些行时:

from win32com.client import DispatchEx

excel = DispatchEx('Excel.Application')
wb = excel.Workbooks.Open('myfile.xlsx')
ws = wb.Worksheets('MySheet')
ws.PivotTables(1).PivotFields("Quarters").PivotFilters('Add2', 'xlBefore', '10/10/2017')

我最终得到一个“参数数量无效”,所以我想我已经很接近了,但找不到文档来完成我的代码

有没有人做过这种工作?

你调用了错误的方法。 您应该在PivotFilters属性之后调用.Add2

ws.PivotTables(1).PivotFields("Effective deadline").ClearAllFilters()
ws.PivotTables(1).PivotFields("Effective deadline").PivotFilters.Add2(31, None, '10/10/2017')

另外,请注意,您需要根据要应用的过滤器类型指定XlPivotFilterType 枚举(在本例中为xlBefore = 31

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM