Python – Как включить автофильтр Excel для ячеек не в первой строке?

Я пытаюсь включить автофильтр в Excel для некоторых ячеек в строке 5, предпочтительно используя Python Win32.

Например:

from win32com.client import Dispatch
xl = Dispatch("Excel.Application")
xl.Workbooks.Open(<file name>)
xl.ActiveWorkbook.ActiveSheet.Range('A5:D5').AutoFilter()
xl.ActiveWorkbook.Close(SaveChanges=1)
del(xl)

Он по-прежнему создает автоматический фильтр в первой строке. Обновление: он работает правильно, см. комментарии.

Я знаю, что можно установить автофильтр с помощью свойства ActiveSheet.Columns, но это подразумевает первую строку?

Я использую Windows XP с установленным Excel 2002.


person Michael Gvirtzman    schedule 14.08.2012    source источник
comment
Я запустил этот код из терминала и получил ожидаемый результат (сохранил автофильтр в строке 5 для указанных столбцов). Это точный код, который вы используете? Я спрашиваю только потому, что он похож на код из другого примера (stackoverflow.com/questions/1948224/) и, возможно, он запутался в твоя версия?   -  person RocketDonkey    schedule 14.08.2012
comment
@RocketDonkey, спасибо, я нашел ошибку в расчете выражения диапазона, теперь все работает.   -  person Michael Gvirtzman    schedule 15.08.2012