2009-12-22 1 views

ответ

4

AFAIK xlwt не позволяет добавить фильтр.

Однако вы можете добавить фильтр, используя фильтр Mark Hammond's Python Win32 Extensions. Загрузить для 2.6 here.
Нечто подобное должно работать (проверено в Python 2.5.4):

from win32com.client import DispatchEx 
xl = DispatchEx("Excel.Application") 
xl.Workbooks.Open("c:/excel_file.xls") 
xl.ActiveWorkbook.ActiveSheet.Columns(1).AutoFilter(1) 
xl.ActiveWorkbook.Close(SaveChanges=1) 
xl.Quit() 
del xl # ensure excel.exe process ends 
+0

Привет, спасибо за ваш ответ, но мой сервер работает в Linux, поэтому я не могу использовать COM. :-( – jbochi

+1

@ jbochi: Нет проблем. Возможно, вы захотите обновить вопрос с помощью этой дополнительной информации. – bernie

+0

это не работает для меня, пожалуйста, помогите мне. Я получаю эту ошибку xl = DispatchEx ("Excel.Application ") Файл« C: \ Python27 \ lib \ site-packages \ win32com \ client \ __ init__.py », строка 113, в DispatchEx dispatch = pythoncom.CoCreateInstanceEx (clsid, None, clsctx, serverInfo, (pythoncom.IID_IDispatch,)) [0] pywintypes.com_error: (-2147221005, 'Invalid class string', None, None) –

2

У меня такая же проблема, запуск сервера Linux.

Я собираюсь проверить создание файла ODS или XLSX с автоматическим фильтром другими способами, а затем преобразовать их с командной строкой libreoffice в "xls".

+1

Вы можете добавить автофильтры с помощью XlsxWriter. См. Этот [пример] (http://xlsxwriter.readthedocs.org/en/ last/example_autofilter.html # ex-autofilter) – jmcnamara

+0

@jmcnamara SORRY Эта страница еще не существует. –

+0

Пробуйте эту ссылку: https://xlsxwriter.readthedocs.io/working_with_autofilters.html – jmcnamara