Python – how to convert xls to xlsx

pythonuno

I have some *.xls (excel 2003) files, and I want to convert those files into xlsx (excel 2007).

I use the uno python package, when I save the documents,
I can set the Filter name: MS Excel 97
But there is no Filter name like 'MS Excel 2007',

How can set the the filter name to convert xls to xlsx ?

Best Answer

You need to have win32com installed on your machine. Here is my code:

import win32com.client as win32
fname = "full+path+to+xls_file"
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)

wb.SaveAs(fname+"x", FileFormat = 51)    #FileFormat = 51 is for .xlsx extension
wb.Close()                               #FileFormat = 56 is for .xls extension
excel.Application.Quit()