
在 Excel 中,數據驗證確保用戶在工作表中輸入的僅為有效數據。在設計表單、收集數據或構建財務模型時,數據驗證幫助維持結構並最小化用戶錯誤。在這篇文章中,我們將向您展示如何使用 C# 程式碼在 Excel 中應用數據驗證。
本文涵蓋以下主題:
- C# Excel 數據驗證庫
- 在 Excel 中使用 C# 創建下拉列表
- 在 Excel 中使用 C# 限制整數輸入
- 在 Excel 中使用 C# 進行日期範圍驗證
- 基於公式的 Excel 資料驗證
- 在 Excel 中處理無效數據的錯誤提醒
- 免費資源
C# Excel 數據驗證庫
數據驗證確保用戶在 Excel 試算表中輸入有效且預期的輸入。我們將使用 Aspose.Cells for .NET API 在 Excel 中添加不同類型的數據驗證。它提供了一種強大而靈活的方法來定義規則,例如下拉列表、數字範圍、日期限制和自定義公式,所有這些都不需要 Microsoft Excel。
在您的項目中通過 NuGet 套件安裝 Aspose.Cells for .NET:
PM> Install-Package Aspose.Cells
然後導入相關的命名空間:
using Aspose.Cells;
在 Excel 中使用 C# 創建下拉列表驗證
您可以通過在 Excel 中創建下拉列表驗證來限制用戶輸入到預定義的選項集。這確保了一致的值,特別是在表單或模板中非常有用。
按照以下步驟在 Excel 中使用 C# 創建下拉列表:
- 創建一個新的
Workbook
物件。 - 透過索引訪問第一個
worksheet
。 - 定義目標
CellArea
以進行驗證。 - 訪問工作表的驗證集合。
- 使用
Add()
方法添加新的驗證。 - 將驗證類型設置為
ValidationType.List
。 - 定義下拉選項使用
Formula1
屬性(以逗號分隔)。 - 將單元格區域添加到驗證中,使用
AddArea()
方法。 - 將工作簿保存以生成驗證過的 Excel 文件。
這是實現這些步驟的 C# 代碼示例:
// 創建一個新的 Excel 工作簿
var workbook = new Workbook();
// 訪問工作簿中的第一個工作表
var sheet = workbook.Worksheets[0];
// 定義目標儲存格區域以進行驗證(在這種情況下為 A1)
var area = new CellArea
{
StartRow = 0, // Row index starts from 0 (Row 1)
EndRow = 0, // Apply to a single row
StartColumn = 0, // Column index starts from 0 (Column A)
EndColumn = 0 // Apply to a single column
};
// 訪問工作表的驗證集合
var validations = sheet.Validations;
// 為指定的單元格範圍新增驗證條目
int index = validations.Add(area);
var validation = validations[index];
// 將驗證類型設置為下拉列表
validation.Type = ValidationType.List;
// 定義允許的列表項目(以逗號分隔的值)
validation.Formula1 = "Red,Green,Blue";
// 設定當單元格被選擇時顯示的輸入消息
validation.InputMessage = "Select a color from the list.";
// 設置當輸入無效數據時顯示的錯誤信息
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";
// 啟用錯誤消息的顯示
validation.ShowError = true;
// 將定義的區域應用於驗證
validation.AddArea(area);
// 將工作簿保存到指定的文件路徑
workbook.Save("dropdown-validation.xlsx");

在 Excel 中使用 C# 創建下拉列表驗證
使用 C# 在 Excel 中限制整數輸入
整數驗證確保用戶僅在 Excel 中輸入有效的整數值,這對於數量字段、年齡輸入或預算表非常理想,因為不接受小數或文本。
讓我們說你想限制一個儲存格只接受1到100之間的數字。如果沒有這個規則,用戶可能會不小心輸入無效的內容,例如150或abc,從而造成你的電子表格中的計算錯誤或邏輯問題。
使用 Aspose.Cells for .NET,您可以在 C# 中以程式碼強制執行此驗證規則,而無需在 Excel 中手動配置。
以下代碼片段顯示如何限制用戶僅輸入允許的值:
using Aspose.Cells;
// 建立新的 Excel 工作簿
var workbook = new Workbook();
// 訪問工作簿中的第一個工作表
var sheet = workbook.Worksheets[0];
// 定義目標單元格範圍 — B2(第 1 行,第 1 列)
var area = new CellArea
{
StartRow = 1,
EndRow = 1,
StartColumn = 1,
EndColumn = 1
};
// 訪問工作表的驗證集合
var validations = sheet.Validations;
// 新增一個驗證並獲取其索引
int index = validations.Add(area);
// 使用索引檢索驗證對象
var validation = validations[index];
// 將驗證類型設置為 WholeNumber(僅允許整數)
validation.Type = ValidationType.WholeNumber;
// 將運算符設置為介於
validation.Operator = OperatorType.Between;
// 定義有效範圍:1 到 100
validation.Formula1 = "1";
validation.Formula2 = "100";
// 設置當輸入無效數據時出現的錯誤消息
validation.ErrorMessage = "Enter a number between 1 and 100.";
// 啟用在驗證失敗時顯示錯誤警報
validation.ShowError = true;
// (如果沒有提前使用 Add(area),則可選)明確將區域添加到驗證中
validation.AddArea(area);
// 將工作簿保存到文件中
workbook.Save("numbers-validation.xlsx");

在 C# 中使用 Excel 限制整數格式
在 Excel 中使用 C# 應用日期範圍驗證
日期驗證幫助您確保用戶僅輸入有效日期。它在計劃工具、出勤記錄、預訂表格以及您需要特定範圍內日期的任何場景中都很有用。
例如,假設您正在建立一個項目排程模板,而您想要限制用戶只能輸入2024年內的日期。允許用戶輸入超出此範圍的日期(如2023年或2025年)可能會破壞公式或創建不一致的記錄。
Aspose.Cells for .NET 讓應用日期驗證變得簡單,可以針對特定儲存格進行設置,這樣用戶只能輸入符合您標準的日期。
以下代碼片段演示了如何確保用戶只能輸入介於 2024 年 1 月 1 日和 2024 年 12 月 31 日之間的日期。超出範圍的任何內容都會觸發錯誤,幫助您在電子表格中保持更乾淨、更準確的數據。
using Aspose.Cells;
// 創建一個新的 Excel 工作簿
var workbook = new Workbook();
// 訪問工作簿中的第一個工作表
var sheet = workbook.Worksheets[0];
// 定義應用驗證的單元格範圍 — C3 (第2行,第2列)
var area = new CellArea
{
StartRow = 2,
EndRow = 2,
StartColumn = 2,
EndColumn = 2
};
// 訪問工作表的驗證集合
var validations = sheet.Validations;
// 新增一個驗證並獲取其索引
int index = validations.Add(area);
// 檢索驗證物件
var validation = validations[index];
// 將驗證類型設置為日期
validation.Type = ValidationType.Date;
// 將運算符設置為介於(開始和結束日期)
validation.Operator = OperatorType.Between;
// 指定有效日期範圍:2024年1月1日至2024年12月31日
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";
// 設置當日期超出範圍時顯示的錯誤信息
validation.ErrorMessage = "Date must be within the year 2024.";
// 啟用顯示錯誤警報
validation.ShowError = true;
// 重新應用該區域以確保驗證正確綁定
validation.AddArea(area);
// 將工作簿保存到指定的路徑
workbook.Save("date-validation.xlsx");
在 C# 中使用公式基於的驗證來驗證 Excel
有時,簡單的下拉選單或固定的數字範圍不夠用,特別是當您的規則依賴於其他單元格的值時。通過基於公式的驗證,您可以使用 Excel 風格的公式定義自訂規則。這些規則可以參考其他單元格並動態評估輸入是否有效。例如,您可能希望確保單元格 B1 中的值始終大於單元格 A1 中的值。這在價格比較、得分表或日期序列中是一個常見的情況。
Aspose.Cells for .NET 完全支持這個功能,並讓您使用自定義公式來定義驗證,就像在 Excel 中一樣。
以下代碼範例顯示如何使用 C# 在 Excel 中應用基於公式的驗證。
using Aspose.Cells;
// 創建一個新的 Excel 工作簿
var workbook = new Workbook();
// 訪問工作簿中的第一個工作表
var sheet = workbook.Worksheets[0];
// 定義驗證的儲存格範圍 — B1(第 0 行,第 1 列)
var area = new CellArea
{
StartRow = 0,
EndRow = 0,
StartColumn = 1,
EndColumn = 1
};
// 訪問工作表驗證集合
var validations = sheet.Validations;
// 將新驗證添加到集合並獲取其索引
int index = validations.Add(area);
// 透過索引檢索驗證對象
var validation = validations[index];
// 將驗證類型設置為自訂(用於基於公式的規則)
validation.Type = ValidationType.Custom;
// 設定自訂公式:B1 必須大於 A1
validation.Formula1 = "=B1>A1";
// 定義驗證失敗時顯示的錯誤信息
validation.ErrorMessage = "Value in B1 must be greater than A1.";
// 啟用在無效輸入時顯示錯誤警報
validation.ShowError = true;
// 明確添加區域以確保它被驗證覆蓋。
validation.AddArea(area);
// 將工作簿保存到指定的文件路徑
workbook.Save("formula-validation.xlsx");
在 Excel 中使用 C# 配置輸入和錯誤訊息
應用數據驗證僅是解決方案的一部分。當用戶輸入不正確的數據時,引導他們同樣重要,而這正是自定義警報和消息發揮關鍵作用的地方。
Aspose.Cells for .NET 允許您設置有用的輸入消息和錯誤警報,這些消息在用戶選擇單元格或輸入無效數據時出現。這些消息改善了用戶體驗,減少了困惑,並使您的 Excel 樣板更加專業。
例如,當用戶點擊一個單元格時,您可以顯示如下的提示資訊:
`只允許 1 到 100 之間的數值。”
如果他們輸入了不正確的值,Excel 可以顯示一個對話框說:
`無效輸入:請輸入一個介於 1 和 100 之間的數字。”
您還可以通過選擇是否完全阻止用戶(Stop
)、允許他們在發出警告的情況下繼續(Warning
),或僅顯示信息消息(Information
)來自定義 Excel 對無效輸入的響應。
按照以下步驟使用 C# 配置驗證警報:
- 在設置驗證規則後,設置
InputTitle
和InputMessage
以在用戶選擇單元格時顯示幫助文本。 - 定義
ErrorTitle
和ErrorMessage
以解釋如果驗證失敗,發生了什麼問題。 - 選擇一個
AlertStyle
— 選項包括Stop
、Warning
和Information
。 - 將
ShowError
設置為true
以啟用驗證警報。 - 保存工作簿。
這些警報使您的電子表格更加直觀和易於使用,特別是在您為他人創建或經常重用的模板時。
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
// 設置驗證區域 — 應用於單元格 C1
var area = new CellArea
{
StartRow = 0,
EndRow = 0,
StartColumn = 2, // Column C = 2
EndColumn = 2
};
// 添加驗證
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];
validation.Type = ValidationType.Custom;
// 此公式總是評估為 FALSE
validation.Formula1 = "=FALSE";
// 設置輸入和錯誤消息
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;
// 應用驗證到區域
validation.AddArea(area);
// 儲存已驗證的工作簿
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");
它們的提示增強了可用性,並清晰地指導用戶應該輸入什麼。

在 Excel 中使用 C# 配置輸入和錯誤消息
免費試用
獲取一個 free temporary license 以測試 Aspose.Cells for .NET 的全部功能,而不會有任何功能限制。
免費資源
探索有關 Excel 自動化和驗證的更多資訊,請使用以下資源:
結論
在這篇文章中,我們展示了如何使用 Aspose.Cells for .NET 在 Excel 中實現資料驗證。從下拉選單到自定義公式,您可以構建智能且無錯誤的電子表格,而無需依賴 Excel 本身。
如果您有任何問題或反饋,請隨時在我們的 免費支持論壇 上發佈。我們很樂意提供幫助!