Excel pivot table 通过 win32com 在 Python 中过滤
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')
我得到了一个 'Invalid number of parameters' 所以我想我已经很接近了但是找不到文档来完成我的代码
有没有人做过这种工作?
您调用了错误的方法。您应该在 PivotFilters
属性:
之后调用 .Add2
ws.PivotTables(1).PivotFields("Effective deadline").ClearAllFilters()
ws.PivotTables(1).PivotFields("Effective deadline").PivotFilters.Add2(31, None, '10/10/2017')
此外,请注意您需要根据要应用的过滤器类型指定 XlPivotFilterType Enumeration(在本例中 xlBefore
= 31
)
我非常努力地寻找如何通过 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')
我得到了一个 'Invalid number of parameters' 所以我想我已经很接近了但是找不到文档来完成我的代码
有没有人做过这种工作?
您调用了错误的方法。您应该在 PivotFilters
属性:
.Add2
ws.PivotTables(1).PivotFields("Effective deadline").ClearAllFilters()
ws.PivotTables(1).PivotFields("Effective deadline").PivotFilters.Add2(31, None, '10/10/2017')
此外,请注意您需要根据要应用的过滤器类型指定 XlPivotFilterType Enumeration(在本例中 xlBefore
= 31
)