【发布时间】:2019-04-27 14:13:07
【问题描述】:
我正在使用Python 2.7 & openpyxl==2.5.11。
对于具有有效工作簿的文件,我正在使用以下代码阅读内容:
wb = openpyxl.load_workbook('my_file.xlsx', read_only=True)
ws = wb.worksheets[1]
rows = ws.rows
现在,一位测试人员向我提供了一个旧文件,该文件没有有效的工作簿部分并引发此错误:
IOError: File contains no valid workbook part
在这一行ws = wb.worksheets[1]
我在 openpyxl 文档中找不到如何读取此类文件的数据的示例。
我设法使用pandas 读取了文件:
data = pandas.read_excel('my_file.xlxs')
有没有办法用openpyxl 读取文件,因为我已经在我的应用程序中使用了openpyxl,并且不想完全迁移到pandas,也不想在我的应用程序的不同位置同时使用两者。理想情况下,我想在所有应用程序服务中使用单个库进行 Excel 文件操作,如果可能的话,我想避免将表单 openpyxl 转换为 pandas,因为我无法估计转换需要多大的努力,也无法估计我的所有用例可以使用 pandas 开箱即用。
【问题讨论】:
-
您可以使用 Excel 本身吗?即你在Windows上吗? Python 可用于自动执行此操作。
-
@MartinEvans 不,我不在 Windows 上,也没有安装 Excel。我们的服务器是 Ubuntu,所以这看起来不像一个选项。
-
如果没有 workbook.xml 部分,则该文件不是有效的 OOXML 文件。
标签: python excel pandas openpyxl xlsx