動態

詳情 返回 返回

使用 C# 設置 Excel 單元格數據驗證 - 動態 詳情

在日常報表開發中,Excel 的數據準確性和可控性與格式美觀同樣重要。通過合理設置數據驗證,可以防止輸入錯誤、約束填報規則,從而提升數據的可靠性和規範性。

相比手動設置驗證規則,使用 C# 程序自動化生成 Excel 數據驗證 不僅能提高效率,還能保證規則統一。本文演示如何在 同一個工作表中 設置 下拉列表、數值範圍、日期區間、文本長度、自定義公式和輸入提示,並結合實際業務場景幫助你理解數據驗證的作用。

本文使用的方法基於 Free Spire.XLS for .NET。安裝方式(NuGet)如下:

Install-Package FreeSpire.XLS

1. 初始化工作簿和工作表

using Spire.Xls;

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "員工信息錄入";

操作説明
這裏新建了一個 Excel 文件並獲取第一個工作表,命名為“員工信息錄入”。所有驗證規則都會集中展示在這個表中,保證操作有條理。


2. 下拉列表驗證(部門選擇)

在實際業務中,員工部門字段通常是固定的幾個選項,例如“人事部”“財務部”“技術部”“市場部”。通過下拉列表驗證,可以避免用户隨意輸入錯誤部門名稱。

// 部門列表
sheet.Range["A1"].Text = "可選部門:";
sheet.Range["A2"].Text = "人事部";
sheet.Range["A3"].Text = "財務部";
sheet.Range["A4"].Text = "技術部";
sheet.Range["A5"].Text = "市場部";

// 員工錄入區
sheet.Range["C1"].Text = "所屬部門:";
CellRange deptCell = sheet.Range["C2"];

deptCell.DataValidation.AllowType = CellDataType.Formula;
// 設置下拉列表數據源
deptCell.DataValidation.DataRange = sheet.Range["A2:A5"];
// 也可直接設置列表內容
//deptCell.DataValidation.Values = ["人事部", "財務部", "技術部", "市場部"];
deptCell.DataValidation.ShowError = true;
deptCell.DataValidation.AlertStyle = AlertStyleType.Stop;
deptCell.DataValidation.ErrorTitle = "輸入錯誤";
deptCell.DataValidation.ErrorMessage = "請從下拉列表中選擇部門!";

// 輸入提示
deptCell.DataValidation.ShowInput = true;
deptCell.DataValidation.InputTitle = "選擇部門";
deptCell.DataValidation.InputMessage = "請從固定部門列表中選擇。";

使用場景:避免部門名稱不統一(如“技術”“技術部”混用)。

保存文件後效果:

設置Excel下拉列表數據驗證


3. 數值驗證(員工年齡)

員工年齡一般處於一定範圍內,比如 18 到 60 歲。我們可以通過數值驗證來限制輸入。

sheet.Range["D1"].Text = "員工年齡 (18-60):";
CellRange ageCell = sheet.Range["D2"];

ageCell.DataValidation.AllowType = CellDataType.Integer;
ageCell.DataValidation.CompareOperator = ValidationComparisonOperator.Between;
ageCell.DataValidation.Formula1 = "18";
ageCell.DataValidation.Formula2 = "60";
ageCell.DataValidation.ShowError = true;
ageCell.DataValidation.ErrorMessage = "請輸入 18 到 60 之間的整數!";

使用場景:保證錄入的年齡數據合理,不會出現“5 歲員工”或“100 歲員工”的異常數據。

保存文件後效果:

設置Excel數值數據驗證


4. 日期驗證(入職日期)

企業通常要求員工入職日期在某一合理區間內。例如,錄入表只允許選擇 2023 年內的入職日期。

sheet.Range["E1"].Text = "入職日期 (2023年):";
CellRange hireDateCell = sheet.Range["E2"];

hireDateCell.DataValidation.AllowType = CellDataType.Date;
hireDateCell.DataValidation.CompareOperator = ValidationComparisonOperator.Between;
hireDateCell.DataValidation.Formula1 = "2023-01-01";
hireDateCell.DataValidation.Formula2 = "2023-12-31";
hireDateCell.DataValidation.ShowError = true;
hireDateCell.DataValidation.ErrorMessage = "請輸入 2023 年的有效日期!";

使用場景:確保錄入的入職時間不會超出考勤和人事系統設定範圍。

保存文件後效果:

設置Excel日期數據驗證


5. 文本長度驗證(工號)

工號通常有固定的位數,例如必須是 6 位字符。通過文本長度驗證可以保證工號錄入規範。

sheet.Range["F1"].Text = "工號 (6位):";
CellRange idCell = sheet.Range["F2"];

idCell.DataValidation.AllowType = CellDataType.TextLength;
idCell.DataValidation.CompareOperator = ValidationComparisonOperator.Equal;
idCell.DataValidation.Formula1 = "6";
idCell.DataValidation.ShowError = true;
idCell.DataValidation.ErrorMessage = "工號必須為 6 位字符!";

使用場景:避免工號錄入長度不一導致系統識別異常。

保存文件後效果:

設置Excel文本長度數據驗證


6. 自定義公式驗證(工資 > 基本工資)

在工資表中,往往需要確保“實發工資”大於“基本工資”。我們可以使用自定義公式來實現這種邏輯。

sheet.Range["G1"].Text = "基本工資:";
sheet.Range["G2"].NumberValue = 4000;
sheet.Range["H1"].Text = "實發工資:";
CellRange salaryCell = sheet.Range["H2"];

salaryCell.DataValidation.AllowType = CellDataType.Formula;
salaryCell.DataValidation.Formula1 = "=H2>G2";
salaryCell.DataValidation.ShowError = true;
salaryCell.DataValidation.ErrorMessage = "實發工資必須大於基本工資!";

使用場景:避免出現“實發工資比基本工資還低”的錯誤數據。

保存文件後效果:

設置Excel自定義公式數據驗證


7. 保存文件

完成所有驗證規則設置後,將結果保存為 Excel 文件:

// 自動對齊並保存
sheet.Range.Style.Font.FontName = "微軟雅黑";
sheet.Range.Style.Font.Size = 12f;
sheet.Range.AutoFitColumns();
workbook.SaveToFile("DataValidation.xlsx", ExcelVersion.Version2016);

關鍵類與屬性總結

類 / 屬性 説明
Workbook 表示 Excel 工作簿,用於創建和保存文件
Worksheet 表示 Excel 工作表,所有操作都基於該對象
CellRange 表示單元格或單元格區域
DataValidation 用於設置單元格數據驗證規則
AllowType 指定驗證類型(整數、日期、文本長度、自定義公式等)
CompareOperator 指定比較運算符(Between、Equal 等)
Formula1 / Formula2 用於設置驗證條件的參數值
ShowError 是否顯示錯誤提示
ErrorMessage 錯誤提示信息
ShowInput 是否顯示輸入提示
InputMessage 輸入提示信息

總結

本文通過 Spire.XLS for .NET 演示瞭如何在一張 Excel 工作表中設置多種類型的數據驗證,包括下拉列表、數值範圍、日期區間、文本長度、自定義公式以及輸入提示。通過這些驗證規則,可以有效減少錯誤輸入,統一數據標準,提升報表質量。如果你正在開發人事、財務或其他需要批量數據錄入的系統,使用 C# 自動化設置 Excel 數據驗證會大大提高效率和準確性。

Add a new 評論

Some HTML is okay.