数据验证是 Excel 中一种强大的功能,它可以控制输入到单元格的数据类型和范围。数据验证的主要目的是确保 Excel 单元格或单元格范围中输入的数据准确无误,以防止数据错误和不一致性的发生。通过设定特定的数据输入条件,数据验证功能能够有效地保证数据的准确性。这有助于我们在数据分析、报告生成和决策制定过程中获得准确可靠的结果。本文将介绍如何使用 Python 和 Spire.XLS for Python 在 Excel 中添加或删除数据验证。
安装 Spire.XLS for Python
此教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考:如何在 Windows 中安装 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 天的临时许可证。