Openpyxl给出了一个不一致的错误消息

时间:2015-08-26 18:36:46

标签: python openpyxl

我有以下函数将从带有openpyxl库的excel工作簿中读取:

import openpyxl

def read_excel(path):
    excel_workbook = openpyxl.load_workbook(path, read_only = True)
    # other logic
    return None

我可以像这样调用这个函数:

read_excel("C:/Users/anon/Desktop/Current Projects/Test Files/Test.xlsm ")

它会返回此错误:

openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support .xlsm  file
format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,
.xltx,.xltm

该错误消息让我感到困惑。它告诉我它不支持.xlsm文件格式,并且它支持.xlsm文件格式。该文件在excel中打开正常,为什么openpyxl不会读取我的Excel文件?

3 个答案:

答案 0 :(得分:3)

.xlsm之后的错误消息中有一个额外的空格字符。删除调用函数的路径字符串末尾的空格字符,函数运行时没有错误。

read_excel("C:/Users/anon/Desktop/Current Projects/Test Files/Test.xlsm")

答案 1 :(得分:1)

同样的问题今天也困扰了我,最后我将openpyxl从2.3.2更新到2.3.5,这个问题就消失了。

虽然我使用的是Anaconda,但有时使用pip更新软件包可能是一个不错的尝试。

答案 2 :(得分:0)

我正在使用PyQt5并遇到相同的问题。我发现添加_filter可以解决此问题。全行显示为:

fileName, _filter = QtWidgets.QFileDialog.getOpenFileName(None, "Lists", "", "xlsx files *.xlsx")