簡體   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