По-видимому, в Excel есть программа, которая может записывать все, что вы щелкаете, поэтому, если вы хотите манипулировать фильтром / срезом, вы можете щелкнуть элемент правой кнопкой мыши и выбрать «Назначить макрос». Затем вы можете щелкнуть по нему, поскольку он записывает ваши щелчки. Как только вы закончите, вы можете просмотреть его, снова выбрав «Назначить макрос», и появится всплывающее окно, в котором вы можете выбрать your_filter / slice_name_Click, и он предоставит вам код VBA. Все, что вам нужно сделать, это изменить его так, чтобы он соответствовал формату python.
Обновленный ответ для преобразования VBA в код python:
Ссылаясь на эта ссылка, я смог преобразовать VBA в код python и настроить дату в зависимости от вашего выбора даты.
Итак, код VBA следующий:
ActiveWorkbook.SlicerCaches("NativeTimeline_Goods_Receipt_Date").TimelineState. _
SetFilterDateRange "01/01/2020", "30/04/2020"
И его версия python:
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.DisplayAlerts = False
excel.Visible = True
test_wb = excel.Workbooks.Open(test_file, None, False)
date_sl = test_wb.SlicerCaches("NativeTimeline_Goods_Receipt_Date")
date_sl.TimelineState.SetFilterDateRange("01/01/2020", "30/04/2020")
В моем случае мне нужно изменить дату, установленную в зависимости от того, когда я запускаю код, и так далее, чтобы я мог просто назначить date в переменную и замените ею жестко заданную дату.