是什么原因导致 "UserWarning: Discarded range with reserved name" - openpyxl

What causes "UserWarning: Discarded range with reserved name" - openpyxl

我有一个简单的 EXCEL-sheet,A 列中包含城市名称,我想提取它们并将它们放入列表中:

def getCityfromEXCEL():
    wb = load_workbook(filename='test.xlsx', read_only=True)
    ws = wb['Sheet1']
    cityList = []

    for i in range(2, ws.get_highest_row()+1):
        acell = "A"+str(i)
        cityString = ws[acell].value
        city = ftfy.fix_text_encoding(cityString)            
        cityList.append(city)

getCityfromEXCEL()

使用完美运行的小文件(70 行)。现在我正在处理一个大文件(8300 行),它给了我这个错误:

/Library/Python/2.7/site-packages/openpyxl/workbook/names/named_range.py:121: UserWarning: Discarded range with reserved name
  warnings.warn("Discarded range with reserved name")

但它并没有中止。它似乎不再继续了。有人可以告诉我什么可能导致错误吗?它是 .xlsx 中的内容吗?我可以寻找什么特别提示?

这应该是一个友好的警告,让您知道在读取文件时一些定义的名称正在丢失。 Python 中的警告不是例外情况,而是信息性通知。

目前对已定义名称的支持基本上仅限于对 openpyxl 中单元格范围的引用。但它们可以指代许多其他内容,例如打印设置。但是,如果他们引用的 objects/values 没有被 openpyxl 保存并且文件被保存并稍后被 Excel 打开,它可能会抱怨缺少对象。

在我的例子中,当我的一个工作表上进行过滤时,会出现此警告。我想抑制警告,以免它打扰我的用户,我只是在 openpyxl.load_workbook 调用之前将此行放在我的代码中:

warnings.simplefilter("ignore")

如果你想忽略它:

import warnings
warnings.simplefilter("ignore")
wb = load_workbook(path)
warnings.simplefilter("default")