Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create an excel file with an autofilter in the first row with xlwt?

I am using Python 2.6 + xlwt module to generate excel files.

Is it possible to include an autofilter in the first row with xlwt or pyExcelerator or anything else besides COM?

Thanks

like image 705
jbochi Avatar asked Dec 22 '09 18:12

jbochi


3 Answers

AFAIK xlwt doesn't allow you to add a filter.

However you can add a filter using Mark Hammond's Python Win32 Extensions. Download for 2.6 here.
Something like this should work (tested in 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
like image 50
mechanical_meat Avatar answered Nov 13 '22 09:11

mechanical_meat


I found this message in a Google group. It looks like it's not possible, unfortunately.

like image 29
jbochi Avatar answered Nov 13 '22 11:11

jbochi


I have the same issue, running a linux server.

i'm going to check creating an ODS or XLSX file with auto-filter by other means, and then convert them with a libreoffice command line to "xls".

like image 2
Berry Tsakala Avatar answered Nov 13 '22 09:11

Berry Tsakala