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

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

作者: JunChen | 来源:发表于2022-08-04 09:44 被阅读0次

设置数据验证用到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() # 清除工作表中的所有数据验证

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/mnqdwrtx.html