导致"用户警告的原因:保留名称的丢弃范围" - openpyxl

时间:2015-05-11 13:36:31

标签: python-2.7 openpyxl

我有一个简单的EXCEL表,其中包含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中的东西吗?我能找到什么特别提示吗?

3 个答案:

答案 0 :(得分:15)

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

对定义名称的支持基本上仅限于在openpyxl中引用单元格范围。但他们可以参考很多其他的东西,比如打印设置。但是,如果openpyxl不保留它们引用的对象/值,并且文件被保存并稍后由Excel打开,则可能会抱怨丢失的对象。

答案 1 :(得分:9)

在我的情况下,当我在我的一个工作表上进行过滤时会显示此警告。我想抑制警告,以免它对我的用户造成麻烦,我只是在openpyxl.load_workbook调用之前将这一行放在我的代码中:

warnings.simplefilter("ignore")

答案 2 :(得分:7)

如果你想忽略它:

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