Excel处理控件Aspose.Cells教程:使用 C# 在 Excel 中应用数据验证

Excel 中的数据验证可确保用户在工作表中仅输入有效数据。在设计表单、收集数据或构建财务模型时,数据验证有助于维护结构并最大限度地减少用户错误。在本文中,我们将向您展示如何使用 C# 以编程方式在 Excel 中应用数据验证。

Aspose.Cells 最新版下载

C# Excel 数据验证库

数据验证可确保用户在 Excel 电子表格中输入有效且符合预期的内容。我们将使用Aspose.Cells for .NET API 在 Excel 中添加不同类型的数据验证。它提供了一种强大而灵活的方法来定义规则,例如下拉列表、数值范围、日期限制和自定义公式,所有这些都无需 Microsoft Excel 即可实现。

在您的项目中通过NuGet包安装 Aspose.Cells for .NET 

PM> Install-Package Aspose.Cells

然后导入相关的命名空间:

using Aspose.Cells;

使用 C# 在 Excel 中创建下拉列表验证

您可以通过在 Excel 中创建下拉列表验证来将用户输入限制为一组预定义的选项。这可以确保值的一致性,这在表单或模板中尤其有用。

按照以下步骤使用 C# 在 Excel 中创建下拉列表:

  1. 创建一个新Workbook对象。
  2. worksheet使用索引访问第一个。
  3. CellArea定义验证目标。
  4. 访问工作表的验证集合。
  5. 使用该方法添加新的验证Add()。
  6. 将验证类型设置为ValidationType.List。
  7. Formula1使用属性(逗号分隔)定义下拉选项。
  8. 使用方法将单元格区域添加到验证中AddArea()。
  9. 保存工作簿以生成经过验证的 Excel 文件。

以下是实现这些步骤的 C# 代码示例:

// Create a new Excel workbook
var workbook = new Workbook();// Access the first worksheet in the workbook
var sheet = workbook.Worksheets[0];// Define the target cell area for validation (A1 in this case)
var area = new CellArea
{StartRow = 0,     // Row index starts from 0 (Row 1)EndRow = 0,       // Apply to a single rowStartColumn = 0,  // Column index starts from 0 (Column A)EndColumn = 0     // Apply to a single column
};// Access the validations collection of the worksheet
var validations = sheet.Validations;// Add a new validation entry for the specified cell area
int index = validations.Add(area);
var validation = validations[index];// Set the validation type to a dropdown list
validation.Type = ValidationType.List;// Define the allowed list items (comma-separated values)
validation.Formula1 = "Red,Green,Blue";// Set the input message shown when the cell is selected
validation.InputMessage = "Select a color from the list.";// Set the error message shown if invalid data is entered
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";// Enable the display of the error message
validation.ShowError = true;// Apply the defined area to the validation
validation.AddArea(area);// Save the workbook to the specified file path
workbook.Save("dropdown-validation.xlsx");

使用 C# 在 Excel 中创建下拉列表验证

使用 C# 在 Excel 中创建下拉列表验证

使用 C# 在 Excel 中限制为整数

整数验证可确保用户在 Excel 中仅输入有效的整数值,这对于数量字段、年龄输入或不接受小数或文本的预算表非常有用。

假设您想限制一个单元格仅接受 1 到 100 之间的数字。如果没有此规则,用户可能会意外输入无效输入,例如 150 或 abc,从而导致电子表格出现计算错误或逻辑问题。

使用 Aspose.Cells for .NET,您可以在 C# 中以编程方式强制执行此验证规则,而无需在 Excel 中手动配置它。

以下代码片段显示如何限制用户仅输入允许的值:

using Aspose.Cells;// Create a new Excel workbook
var workbook = new Workbook();// Access the first worksheet in the workbook
var sheet = workbook.Worksheets[0];// Define the target cell area — B2 (row 1, column 1)
var area = new CellArea
{StartRow = 1,EndRow = 1,StartColumn = 1,EndColumn = 1
};// Access the worksheet’s validations collection
var validations = sheet.Validations;// Add a new validation and get its index
int index = validations.Add(area);// Retrieve the validation object using the index
var validation = validations[index];// Set validation type to WholeNumber (only integers allowed)
validation.Type = ValidationType.WholeNumber;// Set the operator to Between
validation.Operator = OperatorType.Between;// Define the valid range: 1 to 100
validation.Formula1 = "1";
validation.Formula2 = "100";// Set the error message that appears when invalid data is entered
validation.ErrorMessage = "Enter a number between 1 and 100.";// Enable showing the error alert when validation fails
validation.ShowError = true;// (Optional if not using Add(area) earlier) Add the area to the validation explicitly
validation.AddArea(area);// Save the workbook to a file
workbook.Save("numbers-validation.xlsx");

使用 C# 在 Excel 中限制为整数

使用 C# 在 Excel 中限制为整数

使用 C# 在 Excel 中应用日期范围验证

日期验证可帮助您确保用户仅输入有效日期。它适用于规划工具、考勤记录、预订表以及任何需要特定范围内日期的场景。

例如,假设您正在构建一个项目调度模板,并且您想限制用户只能输入 2024 年内的日期。允许用户输入此范围之外的日期(如 2023 年或 2025 年)可能会破坏公式或创建不一致的记录。

Aspose.Cells for .NET 可以轻松地将日期验证应用于特定单元格,因此用户只能输入符合您条件的日期。

以下代码片段演示了如何确保用户只能输入 2024 年 1 月 1 日至 2024 年 12 月 31 日之间的日期。超出范围的任何内容都会触发错误,从而帮助您在整个电子表格中维护更清晰、更准确的数据。

using Aspose.Cells;// Create a new Excel workbook
var workbook = new Workbook();// Access the first worksheet in the workbook
var sheet = workbook.Worksheets[0];// Define the cell area to apply validation — C3 (row 2, column 2)
var area = new CellArea
{StartRow = 2,EndRow = 2,StartColumn = 2,EndColumn = 2
};// Access the validations collection of the worksheet
var validations = sheet.Validations;// Add a new validation and get its index
int index = validations.Add(area);// Retrieve the validation object
var validation = validations[index];// Set the validation type to Date
validation.Type = ValidationType.Date;// Set the operator to Between (start and end dates)
validation.Operator = OperatorType.Between;// Specify the valid date range: Jan 1, 2024 to Dec 31, 2024
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";// Set the error message to display when the date is out of range
validation.ErrorMessage = "Date must be within the year 2024.";// Enable showing the error alert
validation.ShowError = true;// Re-apply the area to ensure validation is bound correctly
validation.AddArea(area);// Save the workbook to the specified path
workbook.Save("date-validation.xlsx");

使用基于公式的验证在 Excel 中使用 C# 进行验证

有时,简单的下拉菜单或固定数字范围是不够的,尤其是当您的规则依赖于其他单元格中的值时。借助基于公式的验证,您可以使用 Excel 风格的公式定义自定义规则。这些规则可以引用其他单元格并动态评估输入是否有效。例如,您可能希望确保单元格B1中的值始终大于A1中的值。这在价格比较、评分表或日期序列中很常见。

Aspose.Cells for .NET 完全支持此功能,并允许您像在 Excel 中一样使用自定义公式定义验证。

以下代码示例显示如何使用 C# 在 Excel 中应用基于公式的验证。

using Aspose.Cells;// Create a new Excel workbook
var workbook = new Workbook();// Access the first worksheet in the workbook
var sheet = workbook.Worksheets[0];// Define the cell area for validation — B1 (row 0, column 1)
var area = new CellArea
{StartRow = 0,EndRow = 0,StartColumn = 1,EndColumn = 1
};// Access the worksheets validations collection
var validations = sheet.Validations;// Add a new validation to the collection and get its index
int index = validations.Add(area);// Retrieve the validation object by index
var validation = validations[index];// Set the validation type to Custom (used for formula-based rules)
validation.Type = ValidationType.Custom;// Set the custom formula: B1 must be greater than A1
validation.Formula1 = "=B1>A1";// Define the error message shown when validation fails
validation.ErrorMessage = "Value in B1 must be greater than A1.";// Enable display of the error alert on invalid input
validation.ShowError = true;// Add the area explicitly to ensure it is covered by validation
validation.AddArea(area);// Save the workbook to the specified file path
workbook.Save("formula-validation.xlsx");

使用 C# 在 Excel 中配置输入和错误消息

应用数据验证只是解决方案的一部分。在用户输入错误数据时提供指导也同样重要,而自定义警报和消息在此发挥着关键作用。

Aspose.Cells for .NET 允许您设置有用的输入消息错误警报,当用户选择单元格或输入无效数据时会显示这些消息。这些消息可以提升用户体验,减少混淆,并使您的 Excel 模板更加专业。

例如,当用户点击某个单元格时,您可以显示如下工具提示

“仅允许 1 到 100 之间的值。”

如果他们输入了错误的值,Excel 会显示一个对话框,提示:

“无效输入:请输入一个介于 1 到 100 之间的数字。”

您还可以通过选择是否完全阻止用户 ( Stop)、允许他们继续并显示警告 ( Warning) 或仅显示信息消息 ( Information) 来自定义 Excel 对无效输入的响应方式。

按照以下步骤使用 C# 配置验证警报:

  1. 设置验证规则后,设置InputTitle并InputMessage在用户选择单元格时显示帮助文本。
  2. 定义ErrorTitle并ErrorMessage解释如果验证失败,出了什么问题。
  3. 选择一个AlertStyle— 选项包括Stop、、Warning和Information。
  4. 设置ShowError为true以启用验证警报。
  5. 保存工作簿。

这些警报使您的电子表格更加直观和用户友好,特别是当您创建模板供其他人频繁使用或重复使用时。

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];// Set up validation area — apply to cell C1
var area = new CellArea
{StartRow = 0,EndRow = 0,StartColumn = 2, // Column C = 2EndColumn = 2
};// Add validation
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];validation.Type = ValidationType.Custom;// This formula always evaluates to FALSE
validation.Formula1 = "=FALSE";// Set up input and error messages
validation.InputTitle = "Input Restricted";
validation.InputMessage = "Try entering anything to see the validation.";
validation.ErrorTitle = "Invalid Input";
validation.ErrorMessage = "You triggered this validation error successfully!";
validation.AlertStyle = ValidationAlertType.Stop;
validation.ShowError = true;
validation.ShowInput = true;// Apply validation to area
validation.AddArea(area);// Save the validated workbook
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");

它们的警报增强了可用性并清楚地指导用户输入什么。

使用 C# 在 Excel 中配置输入和错误消息

使用 C# 在 Excel 中配置输入和错误消息

结论

在本文中,我们展示了如何使用 Aspose.Cells for .NET 在 Excel 中使用 C# 实现数据验证。从下拉菜单到自定义公式,您可以构建智能且防错的电子表格,而无需依赖 Excel 本身。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI应用:计算机视觉相关技术总结

计算机视觉概述 计算机视觉(Computer Vision, CV)是一门让计算机从图像或视频中 “理解” 和 “解释” 视觉信息的技术,涉及多学科交叉(如数学、统计学、机器学习、信号处理等)。以下从技术体系、核心任务、关键技术、…

人口贩卖暑期威胁消解:算法协同提升安全预警

随着暑期的到来,人员流动加剧,人口贩卖等恶性犯罪活动进入高发阶段,景区、车站、商场等公共场所成为潜在风险区域。传统安防手段在应对此类隐蔽性强、危害性大的犯罪时显得力不从心。为此,引入基于视觉分析的多维度算法技术&#…

【DSP笔记 · 第3章】数字世界的“棱镜”:离散傅里叶变换(DFT)完全解析

数字世界的“棱镜”:离散傅里叶变换(DFT)完全解析 在上一章,我们探索了Z变换和离散时间傅里叶变换(DTFT)。我们知道,DTFT是一个无比强大的理论工具,它能将一个时域离散序列的“基因…

卷积神经网络的参数量及尺度变化计算

文章目录 前言1.卷积2.参数量的计算2.1案例一2.2案例二 3.奇怪的优化思想3.1使用小核卷积替换大核卷积3.2卷积核11的应用 4.输出图像尺寸的计算4.1Same convolution4.2具体计算规则4.3转置卷积 小结 前言 本篇博客主要介绍卷积基本概念,卷积神经网络的参数量计算、…

OpenCV——图像平滑

图像平滑 一、图像的噪声1.1、噪声来源1.2、噪声类型1.3、噪声模拟 二、滤波器三、线性滤波3.1、均值滤波3.2、方框滤波3.3、高斯滤波 四、非线性滤波4.1、中值滤波4.2、双边滤波 图像在采集和传输过程中容易受到各种因素的影响而产生噪声,而噪声会对图像的正确解读…

鸿蒙系统备份恢复

鸿蒙系统尝试者,在纯血鸿蒙与鸿蒙4.2/4.3之前反复横跳,中间折腾… 目录 鸿蒙4.2/4.3升级鸿蒙5.0系统备份 鸿蒙5.0回退鸿蒙4.2/4.3系统备份备份恢复 华为手机助手注意 鸿蒙4.2/4.3升级鸿蒙5.0 系统备份 云空间备份手机本地备份华为手机助手备份 鸿蒙5.…

JS进阶 Day03

1.两种面向编程思想 2.构造函数实现封装以及存在的问题 下面就引出了原型对象 3.原型对象prototype 共享原理图&#xff1a; 4.数组扩展案例-求最大值和数组求和 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><…

visual studio小番茄插件某些快捷键失效

问题 AltO 切换头文件和源文件失效。 背景 最近升级了 visual studio&#xff0c;多了一些插件 原因 Alt O 快捷键被其他插件占用了 解决方案 工具 → 选项 → 环境 → 键盘 搜索这个 VAssistX.OpenCorrespondingFile&#xff08;切换头/源文件&#xff09; 发现命令的快…

基于单片机的PT100温度变送器设计

基于单片机的PT100温度变送器设计 文章目录 基于单片机的PT100温度变送器设计前言一、资源分享二、系统框架三、硬件准备1.主控制器2、PT100温度传感器3、显示屏4、WIFI模块5、USB转RS485模块6、SP3485EN7、K11-11D3 四、设计PCB1、安装下载立创EDA专业版2、画原理图3、摆放元器…

Git 清理指南:如何从版本库中移除误提交的文件(保留本地文件)

场景 在 Git 项目中&#xff0c;我们可能会不小心提交了本应忽略的文件&#xff08;如 node_modules/、.env、*.log 等&#xff09;&#xff0c;导致仓库体积膨胀或敏感信息泄露。本文介绍如何从 Git 历史中彻底删除这些文件&#xff0c;同时保留本地文件。 解决方案 1. 确认…

服务器数据恢复—重装系统导致XFS文件系统分区无法访问的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 一台服务器上通过磁盘柜RAID卡组建的riad5磁盘阵列&#xff0c;服务器上层安装Linux操作系统&#xff0c;搭建XFS文件系统。服务器上层分配一个LUN&#xff0c;并划分了两个分区。通过LVM扩容的方式将sdc1分区加入到了root_lv中&#…

在QtCreator中使用GitHubCopilot

文章目录 1.github copilot账号2. 安装node.js3.安装 GitHub Copilot Neovim plugin4.在Qt中启用4.1.在extension中启用4.2.在配置中启用4.3.使用/禁用 5.评价 在最新版的QtCreator中&#xff0c;已经通过Extension集成了GitHubCopilot进来。 我用的是16.0.2版本的&#xff08;…

岛屿周长问题的三种解法:直接计数法、数学计算法与深度优先搜索

问题描述 给定一个二维网格 grid&#xff0c;其中1表示陆地&#xff0c;0表示水域。网格中的格子水平和垂直方向相连&#xff08;对角线不相连&#xff09;。网格中恰好有一个岛屿&#xff08;即一个或多个相连的陆地格子&#xff09;&#xff0c;需要计算这个岛屿的周长。 解…

将包含父子关系的扁平列表 List<Demo> 转换成树形结构的 List<DemoVO>,每个节点包含自己的子节点列表

1.stream递归操作 private List<DemoVO> createtree(List<Demo> datas) {//得到父节点return datas.stream().filter(m -> TargetConstants.ROOT.equalsIgnoreCase(m.getParentId())).map(m -> {DemoVO vo new DemoVO();vo.setTaxonomyId(m.getPlatformTaxo…

【Jmeter】Jmeter 高并发性能压力测试

目录 一、下载 Jmeter 二、配置环境变量 三、设置中文语言 四、入门最简单的高并发性能压测流程 1. 添加线程组 2. 添加请求 3. 添加监听器 3.1 添加聚合报告 3.2 添加结果树 4. 启动测试 2 种启动方式&#xff1a; 查看结果树&#xff1a; 聚合报告&#xff1a; 五…

芯片测试之VIL/VIH(输入电平)Test全解析:从原理到实战

大家好&#xff0c;我是硅言。在数字芯片的“沟通体系”中&#xff0c;​​VIL&#xff08;输入低电平&#xff09;​​和​​VIH&#xff08;输入高电平&#xff09;​​如同芯片的“听觉阈值”&#xff0c;决定了它能否准确识别外部信号的逻辑状态。本文将从原理剖析、测试方…

【WPF】MVVM的消息机制

在WVM&#xff08;Model-View-ViewModel&#xff09;架构中&#xff0c;消息机制主要用于实现ViewModel与View之间的通信&#xff0c;同时保持它们的分离。这对于维护代码的清晰度和可测试性非常重要。在WPF&#xff08;Windows Presentation Foundation&#xff09;应用程序中…

以楼宇自控关键技术,夯实现代低碳建筑发展重要基础

当“碳达峰、碳中和”成为全球发展共识&#xff0c;建筑行业作为能源消耗与碳排放的重要领域&#xff0c;正加速向低碳化转型。在这场绿色变革中&#xff0c;楼宇自控技术凭借对建筑设备的智能管控与能源优化能力&#xff0c;成为现代低碳建筑建设的核心支撑。从数据采集到智能…

西电【信息与内容安全】课程期末复习笔记

西电【信息与内容安全】课程期末复习笔记 来自2022年春的古早遗留档案&#xff0c;有人需要这个&#xff0c;我就再发一下吧。 ‍ 平时成绩&#xff1a; 10%。线上&#xff1a; 10% &#xff08;线上学习内容&#xff0c; 共 100 分。&#xff09;实验&#xff1a; 10% &#…

【论文阅读笔记】ICLR 2025 | 解析Ref-Gaussian如何实现高质量可交互反射渲染

Reflective Gaussian Splatting Info 会议 【ICLR 2025】 作者 复旦大学&#xff0c;萨里大学&#xff1b;复旦张力教授团队 Github地址 https://github.com/fudan-zvg/ref-gaussian.git Project地址 https://fudan-zvg.github.io/ref-gaussian/ Abstract 新视图合成得益…