python-读写Excel:openpyxl-(4)下拉选项设置

使用openpyxl库的DataValidation对象方法可添加下拉选择列表。

DataValidation参数说明:

  1. type: 数据类型("whole", "decimal", "list", "date", "time", "textLength", "custom")
  2. promptTitle :选定单元格后显示提示信息的标题
  3. prompt :选定单元格后显示提示信息的内容
  4. showDropDown 显示下拉箭头,默认False为显示
  5. allow_blank 允许空白,默认为False
  6. showInputMessage 输入内容后是否显示匹配的内容,默认为False
  7. showErrorMessage 不符合输入条件时报错提示信息显示,默认为False

DataValidation可接收两个公式参数formula1 和formula12 ,根据不同的type添加一个或两个公式参数,如果type类型只接收一个公式时,则取formula1为公式。

接收两个公式参数时,可选择operator参数,参数可选值有:"between", "notBetween", "equal", "notEqual", "lessThan", "lessThanOrEqual", "greaterThan", "greaterThanOrEqual"。

参数与Excel关系:

代码演示:

python 复制代码
from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation

# 创建一个新的工作簿
wb = Workbook()
ws = wb.create_sheet('666', index=0)

# 设置下拉列表的选项
options = ["张三", "李四", "王五"]

# 创建数据验证对象
dv = DataValidation(type="list", formula1='"{}"'.format(','.join(options)),
                    prompt='选择与选项匹配的内容',
                    promptTitle='请选择姓名',
                    allow_blank=True,
                    showErrorMessage=True,
                    showInputMessage=True, showDropDown=False)

# showInputMessage 输入时模糊首先展示匹配的数据供选择
# showErrorMessage 输入后校验输入的数据是够在选择项当中,不在时给出错误提示,错误提示信息如下:
dv.errorTitle = "无效的选择"
dv.errorStyle = 'warning'  # 错误警告的样式,默认为stop,("stop", "warning", "information")
dv.error = "请选择或输入与下拉数据匹配的数据!"

ws.add_data_validation(dv)  # 将数据验证规则添加到工作表中
# 将数据验证应用于A2:A100单元格区域
dv.add("A2:A100")

# 将数据验证添加到工作表
ws.add_data_validation(dv)

# 保存Excel文件
wb.save(rf'C:\Users\Administrator\Desktop\test001.xlsx')

补充小知识:可手动在条件筛选中设置每个下拉选择的样式

相关推荐
Chengbei115 小时前
云安全漏洞挖掘SKILL、一站式云漏洞挖掘工具,支持S3爆破、IMDS探测、K8s检测与AK/SK权限利用
前端·人工智能·网络安全·云原生·容器·kubernetes·系统安全
一次旅行5 小时前
act本地预跑GitHub Actions:Python项目完整CI/CD流水线实战
python·ci/cd·github
玉鸯5 小时前
RAG 全链路调优指南:从 Chunking 到 Reranker
python·llm·agent
圣光SG5 小时前
Java操作题练习(二)
java·开发语言·python
m0_617493946 小时前
Python OpenCV 分水岭算法(Watershed)详解与实战
python·opencv·算法
Sammyyyyy6 小时前
如何利用本地技术栈构建 0 成本 AI SaaS 雏形
开发语言·人工智能·python·ai·servbay
不简说6 小时前
JS 代码技巧 vol.9 — 20 个设计模式在真实项目里的应用
前端·javascript·github
AAIshangyanxiu6 小时前
Python 机器学习与深度学习气象水文海洋全域应用技术体系:地学时空数据 AI 建模、数值模式后处理、气象海洋水文智能预测与数据处理
人工智能·python·机器学习·水文气象·气象预测·气象海洋
CoderLiu6 小时前
Agent 工程的下一层:为什么「把流程写成图」还不够,还需要 Graph Engineering
前端·人工智能·后端
中微极客6 小时前
边缘AI实战:TinyML模型量化与部署全解析(TensorFlow 2.18.0 + ESP32)
人工智能·python·tensorflow