数据验证是 excel 中一种强大的功能,它可以控制输入到单元格的数据类型和范围。数据验证的主要目的是确保 excel 单元格或单元格范围中输入的数据准确无误,以防止数据错误和不一致性的发生。通过设定特定的数据输入条件,数据验证功能能够有效地保证数据的准确性。这有助于我们在数据分析、报告生成和决策制定过程中获得准确可靠的结果。本文将介绍如何使用 python 和 spire.xls for python 在 excel 中添加或删除数据验证。
安装 spire.xls for python
此教程需要 spire.xls for python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.xls
如果您不确定如何安装,请参考:如何在 vs code 中安装 spire.xls for python
python 在 excel 中添加各种类型的数据验证
spire.xls for python 提供了 datavalidation 类来处理特定单元格或单元格范围中的数据验证。通过使用 datavalidation 对象下的属性,你可以指定验证类型、公式、比较运算符等。以下是使用 spire.xls for python 向 excel 单元格添加数据验证的步骤:
- 创建 workbook 类的对象。
- 通过 workbook.worksheets[index] 属性获取指定的工作表。
- 通过 worksheet.range 属性获取指定的单元格。
- 通过 cellrange.datavalidation 对象下的属性设置数据验证类型、公式、比较运算符和其他相关属性。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个workbook对象
workbook = workbook()
# 获取第一个工作表
sheet = workbook.worksheets[0]
# 在单元格中插入文本
sheet.range["b2"].text = "数字验证:"
sheet.range["b4"].text = "日期验证:"
sheet.range["b6"].text = "文本长度验证:"
sheet.range["b8"].text = "列表验证:"
sheet.range["b10"].text = "时间验证:"
# 向c2添加数字验证
rangenumber = sheet.range["c2"]
rangenumber.datavalidation.allowtype = celldatatype.integer
rangenumber.datavalidation.compareoperator = validationcomparisonoperator.between
rangenumber.datavalidation.formula1 = "1"
rangenumber.datavalidation.formula2 = "10"
rangenumber.datavalidation.inputmessage = "输入1到10之间的数字"
rangenumber.style.knowncolor = excelcolors.gray25percent
# 向c4添加日期验证
rangedate = sheet.range["c4"]
rangedate.datavalidation.allowtype = celldatatype.date
rangedate.datavalidation.compareoperator = validationcomparisonoperator.between
rangedate.datavalidation.formula1 = "2022/01/01"
rangedate.datavalidation.formula2 = "2022/12/31"
rangedate.datavalidation.inputmessage = "输入2022/01/01到2022/12/31之间的日期"
rangedate.style.knowncolor = excelcolors.gray25percent
# 向c6添加文本长度验证
rangetextlength = sheet.range["c6"]
rangetextlength.datavalidation.allowtype = celldatatype.textlength
rangetextlength.datavalidation.compareoperator = validationcomparisonoperator.lessorequal
rangetextlength.datavalidation.formula1 = "5"
rangetextlength.datavalidation.inputmessage = "输入小于5个字符的文本"
rangetextlength.style.knowncolor = excelcolors.gray25percent
# 向c8应用列表验证
rangelist = sheet.range["c8"]
rangelist.datavalidation.values = ["美国", "加拿大", "英国", "德国"]
rangelist.datavalidation.issuppressdropdownarrow = false
rangelist.datavalidation.inputmessage = "从列表中选择一个项目"
rangelist.style.knowncolor = excelcolors.gray25percent
# 向c10应用时间验证
rangetime = sheet.range["c10"]
rangetime.datavalidation.allowtype = celldatatype.time
rangetime.datavalidation.compareoperator = validationcomparisonoperator.between
rangetime.datavalidation.formula1 = "9:00"
rangetime.datavalidation.formula2 = "12:00"
rangetime.datavalidation.inputmessage = "输入9:00到12:00之间的时间"
rangetime.style.knowncolor = excelcolors.gray25percent
# set the widths of column 2 and column 3
sheet.columns[1].columnwidth = 12
sheet.columns[2].columnwidth = 20
# 将工作簿保存到文件
workbook.savetofile("添加数据验证.xlsx", excelversion.version2013)
python 删除 excel 中的数据验证
要从 excel 工作表中删除数据验证,你可以使用 worksheet.dvtable.remove(list rectangles) 方法。该方法接受一个 list 参数,用于指定要删除数据验证的单元格或单元格范围。以下是详细的步骤:
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载包含数据验证的 excel 文件。
- 通过 workbook.worksheets[index] 属性获取指定的工作表。
- 创建一个 list,用于指定要删除数据验证的单元格或单元格范围。
- 使用 worksheet.dvtable.remove() 方法从选定的单元格或单元格范围中删除数据验证。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个workbook对象
workbook = workbook()
# 加载一个示例excel文件
workbook.loadfromfile("添加数据验证.xlsx")
# 获取第一个工作表
worksheet = workbook.worksheets[0]
# 创建一个矩形列表,用于指定要移除数据验证的单元格或单元格范围
rects = []
rects.append(rectangle.fromltrb(0, 0, 2, 9))
# 从选定的单元格中移除数据验证
worksheet.dvtable.remove(rects)
# 将工作簿保存到一个excel文件中
workbook.savetofile("删除数据验证.xlsx")
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。