今天在用openpyxl读取表格信息时,需要根据表格中单元格的数据有效性设置中的序列内容来进行下一步操作判断。但是对于如何获取该序列的字符串值一点也不了解,网上查找资料只找到用DataValidation模块可以给单元格设置数据有效性验证,但对于表格中原有的单元格数据有效性设置信息的获取方法却没发现有介绍。于是自己打开openpyxl模块源文件进行研究,颇为费了一番功夫后终于解决了这个问题。
比如,现在有一个名为test.xlsx的文件,其中A1至A5共5个单元格设置了数据有效性验证,限定输入数据为“足球,篮球,排球”这个序列中的三种球类的名称。

想要读取哪些单元格设置了什么样的限定序列可以用如下代码:
import openpyxl
wb = openpyxl.open('test.xlsx')
ws = wb.active
print(ws['A1'].value)
# 输出:足球
print(ws.data_validations.dataValidation[0].formula1)
# 输出:"足球,篮球,排球"。
print(type(ws.data_validations.dataValidation[0].sqref))
# 输出:<class 'openpyxl.worksheet.cell_range.MultiCellRange'>
print(ws.data_validations.dataValidation[0].sqref)
# 输出:A1:A5
可见,能获取到设置数据有效性验证的单元格为A1:A5,数据限定序列为“足球,篮球,排球”。
细心的朋友可能会发现:ws

最低0.47元/天 解锁文章
568

被折叠的 条评论
为什么被折叠?



