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
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84789.shtml
英文地址,請注明出處:http://en.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 新視圖合成得益…