Python 3 openpyxl用户警告:不支持数据验证扩展

时间:2018-12-29 00:07:22

标签: python io openpyxl

所以这是我第一次尝试从Excel文件中读取,并且尝试使用openpyxl模块来读取。我的目的是整理以嵌套列表作为其值的字典。但是,当我尝试运行警告时收到此警告:

UserWarning:不支持“数据验证”扩展,该扩展将被删除 警告(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")

对于那些询问以下内容的人,截图是: (Data Validation Expcetion

2 个答案:

答案 0 :(得分:3)

Excel 有一项称为数据验证的功能(在我的版本中,位于“数据”选项卡的“数据工具”部分),您可以在其中从规则列表中进行选择,以限制可以在单元格中输入的数据类型。这有时用于在 Excel 中创建下拉列表。此警告告诉您 openpyxl 不支持此功能,并且不会强制执行这些规则。如果您希望警告消失,您可以单击 Excel 中的数据验证图标,然后单击全部清除按钮以删除所有数据验证规则并保存您的工作簿。

答案 1 :(得分:0)

感谢截图!在没有看到实际的excel工作簿的情况下,很难确切地说出它在抱怨什么。

如果您注意到阅读器工作表模块的屏幕快照引用行322。看起来这是在告诉您openpyxl库不支持OOXML标准的数据声明扩展。似乎是在说它在您的工作簿中找到了数据验证扩展的一部分,当使用openpyxl扩展解析工作簿时,这些内容将会丢失。