栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python学习笔记——openpyxl读取工作表的数据有效性设置信息

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python学习笔记——openpyxl读取工作表的数据有效性设置信息

今天在用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))

# 输出:

print(ws.data_validations.dataValidation[0].sqref)

# 输出:A1:A5

可见,能获取到设置数据有效性验证的单元格为A1:A5,数据限定序列为“足球,篮球,排球”。

细心的朋友可能会发现:ws.data_validations.dataValidation[0]是Python中序列的索引引用呐。
事实上,ws.data_validations.dataValidation就是一个列表一样的对象,保存了该工作表中所有的数据有效性验证的种类及其涉及的单元格。

如果test.xlsx中A1至A5单元格设置了数据有效性验证限定数据为“足球,篮球,排球”这个序列,同时B1至B5单元格设置了数据有效性验证限定数据为“甲,乙,丙”这个序列。

那么,此时:

print(ws.data_validations.dataValidation[0].formula1)

# 输出:"足球,篮球,排球"。
print(ws.data_validations.dataValidation[0].sqref)

# 输出:A1:A5
print(ws.data_validations.dataValidation[1].formula1)

# 输出:"甲,乙,丙"。
print(ws.data_validations.dataValidation[1].sqref)

# 输出:B1:B5

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948501.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号