使用 openpyxl.load_workbook 遍历目录时出现 InvalidFileException 错误

InvalidFileException error when iterating through directory with openpyxl.load_workbook

我有一个包含 .xls 和 .xlsx 文件的目录,我正在尝试使用 openpyxl 模块加载到 Python 中。我的代码如下:

for i in os.listdir(os.getcwd()): if i.endswith(".xls") or i.endswith(".xlsx"): wb = openpyxl.load_workbook(i)

当我 运行 此代码时,我收到以下错误:

raise InvalidFileException(unicode(e)) InvalidFileException: "There is no item named 'xl/styles.xml' in the archive"

我可以一次使用 openpyxl 成功加载这些相同的文件,但不能循环加载。

提前感谢您的帮助。

詹姆斯

试试这个-

for i in os.listdir(os.getcwd()):
    if os.path.isfile(i):
        if i.endswith(".xls") or i.endswith(".xlsx"):
            wb = openpyxl.load_workbook(os.path.join(os.getcwd(), i))
  1. 因为 os.listdir() returns 文件和目录的名称,在继续之前检查给定项目是否是文件是个好主意。

  2. openpyxl.load_workbook(i) 替换为 openpyxl.load_workbook(os.path.join(os.getcwd(), i)) 以传递匹配文件的绝对路径作为相对路径有时会在文件处理中产生问题

注意: 考虑更新 openpyxl 并将 .xls 扩展名更改为 .xlsx.xlrd 以确保与最新版本的库兼容。

我建议您更新您的 openpyxl 版本。一段时间以来,styles.xml 并不是必需的。