2009-12-22 65 views

Respuesta

4

yo sepa xlwt no permite que usted agregue un filtro.

sin embargo se puede añadir un filtro con Mark Hammond's Python Win32 Extensions. Descargar para 2.6 here.
Algo como esto debería funcionar (probado en 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

Hola, gracias por su respuesta, pero mi servidor se ejecuta en Linux, así que estoy en condiciones de utilizar el COM. :-( – jbochi

+1

@jbochi: No hay problema. Es posible que desee actualizar la pregunta con esta información adicional. – bernie

+0

Esto no funciona para mí. Ayúdenme por favor. Recibo este error xl = DispatchEx ("Excel.Application" ") Archivo" C: \ Python27 \ lib \ site-packages \ win32com \ client \ __ init__.py ", línea 113, en DispatchEx dispatch = pythoncom.CoCreateInstanceEx (clsid, None, clsctx, serverInfo, (pythoncom.IID_IDispatch,)) [0] pywintypes.com_error: (-2147221005, 'Cadena de clase no válida', Ninguno, Ninguno) –

2

me encontraron this message en un grupo de Google. Parece que no es posible, desafortunadamente.

2

que tienen el mismo problema, ejecuta un servidor Linux.

voy a comprobar la creación de un ODS o xlsx con auto-filtro por otros medios, y luego convertirlos con una línea de comandos de LibreOffice a "xls".

+1

Puede agregar filtros automáticos con XlsxWriter. Consulte este [ejemplo] (http://xlsxwriter.readthedocs.org/en/ latest/example_autofilter.html # ex-autofilter). – jmcnamara

+0

@jmcnamara SORRY Esta página no existe todavía. –

+0

Pruebe este enlace: https://xlsxwriter.readthedocs.io/working_with_autofilters.html – jmcnamara

Cuestiones relacionadas