通过Win32 COM在Python中使用Excel透视表过滤器
我非常努力地想找到如何通过win32com在Python中执行这些简单的VBA代码行,但找不到如何正确执行:通过Win32 COM在Python中使用Excel透视表过滤器,python,python-3.x,pywin32,Python,Python 3.x,Pywin32,我非常努力地想找到如何通过win32com在Python中执行这些简单的VBA代码行,但找不到如何正确执行: ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarters").ClearAllFilters ActiveSheet.PivotTables("PivotTable1").PivotFields("Effective deadline"). _ PivotFilters.Add2 Type:=xlBefore, Va
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')
另外,请注意,您需要根据要应用的筛选器类型指定方法(在本例中,
xlBefore
=31
)您调用了错误的方法。您应该在PivotFilters
属性之后调用.Add2
:
ws.PivotTables(1).PivotFields("Effective deadline").ClearAllFilters()
ws.PivotTables(1).PivotFields("Effective deadline").PivotFilters.Add2(31, None, '10/10/2017')
另外,请注意,您需要根据要应用的过滤器类型指定过滤器(在本例中,
xlBefore
=31
)您是真正的救命恩人!谢谢你的链接,这对我将来一定有用你是个真正的救命恩人!谢谢你的链接,这对我将来一定有用