Python 读取 Excel 单元格数据验证

3

如何用Python读取Excel单元格数据验证规则?

使用openpyxl.cell库时,我们只能读取值、日期、字体、边框、填充、数字格式、对齐和数据类型等信息。该API无法读取数据验证规则。

我需要读取数据验证规则的原因是:将主模板与客户提交的数据版本的主模板进行比较,以验证包括Excel中的元数据和数据验证规则在内的数据的有效性,以便确定原始模板未被更改。

例如:下面是在Python中编写数据验证的方法。但我应该如何找到从Excel单元格读取数据验证的API呢?

worksheet.data_validation('B25', {'validate': 'integer',
                                  'criteria': 'between',
                                  'minimum': 1,
                                  'maximum': 100,
                                  'input_title': 'Enter an integer:',
                                  'input_message': 'between 1 and 100'}) 

xlwings 能帮上忙吗?

谢谢 Anant


不确定使用哪些API,但您可以从XML文件中读取验证。 xlsx文件是一个带有验证的XML文件的zip文件,位于\xl\worksheets\SHEETNAME.xml - Brian
你找到解决问题的API了吗? - JK31
1个回答

0

我阅读了API文档,但没有找到它,不过通过阅读源代码,您可以通过以下方式获得它

from openpyxl import load_workbook
wb2 = load_workbook('validation.xlsx')

ws = wb2.active

for one_val_obj in ws.data_validations.dataValidation:
    for k, v in one_val_obj.__dict__.items():
        print(k, v)
"""
sqref A1
showDropDown None
imeMode None
operator None
formula1 "数据验证1,数据验证2"
formula2 None
allowBlank True
showErrorMessage True
showInputMessage True
type list
promptTitle None
errorStyle None
error None
prompt None
errorTitle None

"""

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接