在 Excel 中使用 C# 進行資料驗證

在 Excel 中,數據驗證確保用戶在工作表中輸入的僅為有效數據。在設計表單、收集數據或構建財務模型時,數據驗證幫助維持結構並最小化用戶錯誤。在這篇文章中,我們將向您展示如何使用 C# 程式碼在 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# 創建下拉列表:

  1. 創建一個新的 Workbook 物件。
  2. 透過索引訪問第一個 worksheet
  3. 定義目標 CellArea 以進行驗證。
  4. 訪問工作表的驗證集合。
  5. 使用 Add() 方法添加新的驗證。
  6. 將驗證類型設置為 ValidationType.List
  7. 定義下拉選項使用 Formula1 屬性(以逗號分隔)。
  8. 將單元格區域添加到驗證中,使用 AddArea() 方法。
  9. 將工作簿保存以生成驗證過的 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# 創建下拉列表驗證

在 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 限制為整數

在 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# 配置驗證警報:

  1. 在設置驗證規則後,設置 InputTitleInputMessage 以在用戶選擇單元格時顯示幫助文本。
  2. 定義 ErrorTitleErrorMessage 以解釋如果驗證失敗,發生了什麼問題。
  3. 選擇一個 AlertStyle — 選項包括 StopWarningInformation
  4. ShowError 設置為 true 以啟用驗證警報。
  5. 保存工作簿。

這些警報使您的電子表格更加直觀和易於使用,特別是在您為他人創建或經常重用的模板時。

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# 配置輸入和錯誤訊息

在 Excel 中使用 C# 配置輸入和錯誤消息

免費試用

獲取一個 free temporary license 以測試 Aspose.Cells for .NET 的全部功能,而不會有任何功能限制。

免費資源

探索有關 Excel 自動化和驗證的更多資訊,請使用以下資源:

結論

在這篇文章中,我們展示了如何使用 Aspose.Cells for .NET 在 Excel 中實現資料驗證。從下拉選單到自定義公式,您可以構建智能且無錯誤的電子表格,而無需依賴 Excel 本身。

如果您有任何問題或反饋,請隨時在我們的 免費支持論壇 上發佈。我們很樂意提供幫助!

查看也已