首页 > 解决方案 > 在 Python 3 中将 XLS 文件转换为 XLSX?

问题描述

我的目标是获取大量 XLS 文件并将它们转换为 XLSX。我可以通过简单的操作一次完成一行,或者如果有人知道方法的话,可以批量处理大量文件。

我尝试使用此 Stack post 上的大多数解决方案,但似乎它们不再起作用或适用。它已有 9 年历史,因此可能需要现代解决方案。

我试过的代码:

p.save_book_as(file_name='C://Users//user1//Downloads//oldfile.xls',
           dest_file_name='C://Users//user1//Downloads//oldfile.xlsx')

但这导致了一个错误:

 raise XLRDError('Unsupported format, or corrupt file: ' + msg)
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'<?xml ve'

标签: pythonpython-3.x

解决方案


您可以尝试Tablib,如:

with open('input.xls', 'r') as input:
    data = Dataset().load(input)
    with open('output.xlsx', 'wb') as output:
        output.write(data.export('xlsx'))

不过,不确定它是否支持您的 xls/xlsx 版本。


推荐阅读