openpyxl load_workbook ValueError:名称为Table1的表已存在

问题描述

因此,我尝试使用openpyxlload_workbook加载现有的excel文件,并出现以下错误

wb = load_workbook(filename)
  File "/home/barrachina/anaconda3/envs/tf-2-cpu/lib/python3.7/site-packages/openpyxl/reader/excel.py",line 315,in load_workbook
    reader.read()
  File "/home/barrachina/anaconda3/envs/tf-2-cpu/lib/python3.7/site-packages/openpyxl/reader/excel.py",line 280,in read
    self.read_worksheets()
  File "/home/barrachina/anaconda3/envs/tf-2-cpu/lib/python3.7/site-packages/openpyxl/reader/excel.py",line 251,in read_worksheets
    ws.add_table(table)
  File "/home/barrachina/anaconda3/envs/tf-2-cpu/lib/python3.7/site-packages/openpyxl/worksheet/worksheet.py",line 571,in add_table
    raise ValueError("Table with name {0} already exists".format(table.name))
ValueError: Table with name Table1 already exists

此问题在版本3.0.5中发生,但在3.0.3中没有发生。

  1. 如何打开它?我相信我应该以某种方式打开文件删除一个表定义(根据消息,我至少有两个)。
  2. (对于开发人员):我不喜欢这个错误。提供解决方案会更好,或者只是警告。 Microsoft Office和Open Office确实会打开文件...

解决方法

打开办公室的书写器可以毫无问题地打开它,但是,MS Excel具有以下消息:

enter image description here

使用Excel打开文件,保存并关闭后,它开始工作。但是,我本来希望有一个解决方案,而不必使用Excel。 此外,此文档是使用openpyxl 3.0.2完全生成的,因此应避免创建两次具有相同名称的表。