所以这是我第一次尝试从Excel文件中读取,我尝试使用openpyxl模块来实现。我的目标是整理一个以嵌套列表为值的字典。但是,当我尝试运行它时,得到此警告:
用户警告:数据验证扩展不受支持,将被删除警告(msg)
我不知道我哪里做错了。任何帮助将不胜感激。谢谢
import openpyxl
try:
wb = openpyxl.load_workbook("Grantfundme Master London.xlsx")
except FileNotFoundError:
print("File could not be found.")
sheet = wb["FUNDS"]
database = {}
for i in range(250):#this is the number of keys I want in my dictionary so loop through rows
charity = sheet.cell(row=i + 1, column=1).value
area_of_work = []
org = []
funding = sheet.cell(row=i + 1, column=14).value
for x in range(8, 13): # this loops through columns with info I need
if sheet.cell(row=i +1, column=x).value !="":
area_of_work.append(sheet.cell(row=i +1, column=x).value)
for y in range(3, 6): # another column loop
if sheet.cell(row=i +1, column=y).value !="":
org.append(sheet.cell(row=i +1, column=y).value)
database[charity] = [area_of_work,org, funding]
try:
f = open("database.txt", "w")
f.close()
except IOError:
print("Ooops. It hasn't written to the file")
对于那些询问这里是例外的截图:(
5条答案
按热度按时间egdjgwm81#
Excel有一个名为“数据验证”的功能(在我的版本中,在“数据”选项卡的“数据工具”部分),您可以从规则列表中进行选择,以限制可以在单元格中输入的数据类型。这有时用于在Excel中创建下拉列表。这个警告告诉你openpyxl不支持这个特性,并且这些规则不会被强制执行。如果您希望警告消失,您可以单击Excel中的“数据验证”图标,然后单击“全部清除”按钮以删除所有数据验证规则并保存工作簿。
bweufnob2#
有时,简单地清除工作簿中的数据验证规则并不是一个可行的解决方案-可能其他用户依赖于这些规则,或者他们可能被锁定以进行编辑等。
可以使用简单的过滤器忽略错误,并且工作簿可以保持不变,如下所示:
在实践中,这可能看起来像:
**注意:**请记住重置警告,否则所有其他UserWarnings也将被忽略。
yshpjwxd3#
谢谢你的截图!没有看到实际的excel工作簿,很难说它到底在抱怨什么。
如果您注意到屏幕截图引用了读者工作表模块的第322行。它看起来像是在告诉您openpyxl库不支持OOXML标准的数据验证扩展。它似乎在说它在你的工作簿中发现了部分数据验证扩展,当解析带有openpyxl扩展的工作簿时,这些数据将丢失。
5f0d552i4#
这个错误并不重要,因为你没有在结束代码中保存工作簿:类似于: www.example.com (“Grantfundme Master伦敦.xlsx”)
qcuzuvrc5#
使用
warnings.catch_warning
上下文管理器暂时忽略警告,如下所示: