六、Openpyxl工作表对象的属性和方法-4(数据验证)

2022-08-04  本文已影响0人  JunChen

设置数据验证用到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. 设置


"whole", # 代表整数
"decimal", 
"list", 
"date", 
"time",
 "textLength", 
"custom"

对应的内容为


type
"between", "notBetween", 
"equal", "notEqual",
 "lessThan", "lessThanOrEqual", 
"greaterThan", "greaterThanOrEqual"

对应的内容为


operator

2. 输入信息

输入信息的参数

3. 出错警告

出错警告的参数
"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() # 清除工作表中的所有数据验证

上一篇 下一篇

猜你喜欢

热点阅读