我有一个简单的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中的东西吗?我能找到什么特别提示吗?
答案 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")