Фильтр сводной таблицы Excel в Python через win32com - PullRequest
0 голосов
/ 10 мая 2018

Я очень старался найти, как сделать эти простые строки кода VBA в Python через win32com, но я не мог найти, как правильно его выполнить:

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')

Я получаю «Неверное количество параметров», так что я думаю, что я достаточно близко, но не могу найти документацию для завершения моего кода

Кому-нибудь когда-нибудь удавалось делать такую ​​работу?

1 Ответ

0 голосов
/ 10 мая 2018

Вы вызываете неправильный метод.Вы должны вызывать .Add2 после свойства PivotFilters:

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

Также обратите внимание, что вам нужно указать перечисление XlPivotFilterType в соответствии с типом фильтра, который вы хотите применить (в этом случае xlBefore = 31)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...