将.xlsx excel工作簿转换为.xlsx工作簿

时间:2019-05-27 11:59:36

标签: python-3.x xls pywin32

我有一个生成.xls报告的工具,我想在生成的报告之上运行一些脚本以读取数据,然后操作工作簿(添加更多工作表。)

但是问题是大多数python库当前都在新文件格式(即.xlsx)上工作,并且与.xls格式不兼容。

我尝试使用pywin32客户端转换文件,但是问题是它非常不可靠且运行缓慢,有时在我的系统上也可以使用,但在客户端系统上却不可用。

我想要一些可靠且可以有效工作的解决方案。我运行了这个pywin32脚本进行转换,但是这个pywin32库非常不可靠。下面是我的pywin32代码:

def xls2xlsx(fname):
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    print('...opening...', fname) # fname is the file name of the .xls file
    wb = excel.Workbooks.Open(fname)
    wb.SaveAs(fname+"x",FileFormat=51) #FileFormat = 51 is for .xlsx extension
    print('Saving...')
    wb.Close()
    print('..DONE')                    #FileFormat = 56 is for .xls extension
    excel.Application.Quit()
    return 0

0 个答案:

没有答案