当前位置: 首页 > article >正文

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关系:

代码演示:

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')

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


http://www.kler.cn/a/382638.html

相关文章:

  • Linux 系统下磁盘相关指令:df、du、fdisk、lsblk
  • LabVIEW软件Bug的定义与修改
  • 之前手写的两个好用开源组件优化升级
  • 自创“九转化形”算法设计,禁止抄袭
  • 【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)
  • JVM 优化指南
  • 24软件包的查找、安装、更新和卸载
  • 100种算法【Python版】第51篇——希尔排序
  • Excel怎么转换成word?分享两种方法!
  • 基于matlab的基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十八章 Qt控制硬件
  • NLP论文速读|LOGO -- Long context aliGnment via efficient preference Optimization
  • ChatGPT任务设计和微调策略的优化
  • 泉州市工业和信息化局关于开展排查运维安全管理系统安全漏洞的通知
  • #JavaScript 宏任务与微任务详解
  • 2-146 基于matlab的双摆杆系统建模分析
  • Tomcat 启动卡住,日志显示 At least one JAR was scanned for TLDs yet contained no TLDs.
  • 【C语言】实战-力扣题库:回文链表
  • 【LeetCode】【算法】238. 除自身以外数组的乘积
  • Hadoop集群的高可用(HA)-(2、搭建resourcemanager的高可用)
  • dbt 数据分析工程实战教程(汇总篇)
  • Mill:比Maven快10倍的JVM构建工具
  • 如何理解美国总统Trump这个单词
  • 数据库SQL学习笔记
  • OpenCV C++ 计算两幅图像之间的多尺度结构相似性(MSSIM)
  • 前端八股文(三)JS、ES6 持续更新中。。。