设置数据验证用到DataValidation类,以下是该类可以设置的参数
type=None,
formula1=None,
formula2=None,
allow_blank=False,
showErrorMessage=True,
showInputMessage=True,
showDropDown=None,
allowBlank=None,
sqref=(),
promptTitle=None,
errorStyle=None,
error=None,
prompt=None,
errorTitle=None,
imeMode=None,
operator=None,
下面参数有需要打勾的,就是要填入bool值。(True or False)
参数详解
根据Excel软件的排版,分成四个部分来讲。
1. 设置
- type
"whole", # 代表整数
"decimal",
"list",
"date",
"time",
"textLength",
"custom"
对应的内容为
type
- operator
"between", "notBetween",
"equal", "notEqual",
"lessThan", "lessThanOrEqual",
"greaterThan", "greaterThanOrEqual"
对应的内容为
operator
2. 输入信息
输入信息的参数3. 出错警告
出错警告的参数- errorStyle
"stop", "warning", "information"
对应的内容为
errorStyle
4. 输入法模式
设置的参数只有一个imeMode,有下面这些选项可填,但是实际Excel中,只有三个选项,不知道什么原因,不过也没什么影响,基本用不到这个。
"noControl", "off", "on", "disabled",
"hiragana", "fullKatakana", "halfKatakana", "fullAlpha","halfAlpha",
"fullHangul", "halfHangul"
imeMode
5. 最后一个参数sqref,是填写要设置数据验证的区域
实例
import openpyxl
from openpyxl.worksheet.datavalidation import DataValidation
wb = openpyxl.Workbook()
ws = wb.active
# 选择列表
dv = DataValidation(type="list",
formula1='"a,b,c"',
sqref=('A1:A10'),
promptTitle='提醒',
prompt='请输入a,b,c中的一个')
# 只能填入1-10之间的整数
dv2 = DataValidation(type="whole",
formula1=1,
formula2=10,
sqref=('B1:B10'),
errorTitle='错误',
error='输入的必须在1-10之间的整数')
ws.data_validations.append(dv)
ws.data_validations.append(dv2)
wb.save(r'/Users/junliangchen/Desktop/test.xlsx')
清除数据验证
from openpyxl.worksheet.datavalidation import DataValidationList
wb = openpyxl.Workbook()
ws = wb.active
ws.data_validations = DataValidationList() # 清除工作表中的所有数据验证
网友评论