2009-12-22 46 views

Trả lời

4

AFAIK xlwt không cho phép bạn thêm bộ lọc.

Tuy nhiên, bạn có thể thêm bộ lọc bằng cách sử dụng Mark Hammond's Python Win32 Extensions. Tải xuống cho 2.6 here.
Something như thế này nên làm việc (thử nghiệm bằng 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

Xin chào, cảm ơn câu trả lời của bạn, nhưng máy chủ của tôi đang chạy trên Linux vì vậy tôi không thể sử dụng COM. :-( – jbochi

+1

@jbochi: Không sao cả. Bạn có thể muốn cập nhật câu hỏi với thông tin bổ sung này – bernie

+0

điều này không có tác dụng với tôi.Xin vui lòng giúp tôi. Tôi nhận được lỗi này xl = DispatchEx ("Excel.Application ") Tệp" C: \ Python27 \ lib \ site-packages \ win32com \ client \ __ init__.py ", dòng 113, trong DispatchEx dispatch = pythoncom.CoCreateInstanceEx (clsid, None, clsctx, serverInfo, (pythoncom.IID_IDispatch,)) [0] pywintypes.com_error: (-2147221005, 'Chuỗi lớp không hợp lệ', Không có, Không có) –

2

Tôi tìm thấy this message trong nhóm Google. Có vẻ như không thể, thật không may.

2

Tôi có cùng một vấn đề, chạy một máy chủ Linux.

Tôi sẽ kiểm tra việc tạo tệp ODS hoặc XLSX bằng bộ lọc tự động bằng các phương tiện khác và sau đó chuyển đổi chúng bằng dòng lệnh libreoffice thành "xls".

+1

Bạn có thể thêm bộ lọc tự động bằng XlsxWriter. Xem [ví dụ] (http://xlsxwriter.readthedocs.org/en/ mới nhất/example_autofilter.html # ex-autofilter) – jmcnamara

+0

@jmcnamara SORRY Trang này chưa tồn tại. –

+0

Thử liên kết này: https://xlsxwriter.readthedocs.io/working_with_autofilters.html – jmcnamara

Các vấn đề liên quan