C#を使用してExcelデータ検証をする方法

Excelでは、データ検証機能を使用して、ワークシートのセルに入力できるデータを定義できます。たとえば、入力したデータを特定の範囲の数値に制限したり、ドロップダウンリストを使用してユーザーが選択できるデータなどを制限したりすることができます。そしてこの記事では、主にC#プログラミングおよび強力なライブラリーであるSpire.XLS for .NETを使用してExcelのデータ有効性機能を実現する方法について説明します。

 

一 数値の有効性

 

データ入力の範囲を1から10までの数字に制限する

 

1.新しいExcelワークブックを作成し、最初のワークシートを取得します。

Workbook wb = new Workbook();

Worksheet sheet = wb.Worksheets[0];

2.セルB9にテキストを入力し、フォーマットします。

sheet.Range["B9"].Text = "数字を入力してください";

sheet.Range["B9"].Style.Font.IsBold = true;

sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;

3.セルC9に番号検証を適用します。

sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;

sheet.Range["C9"].DataValidation.Formula1 = "1";

sheet.Range["C9"].DataValidation.Formula2 = "10";

sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;

sheet.Range["C9"].DataValidation.InputMessage = "このセルに1から10までの数字を入力してください";

sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;

操作した結果:

f:id:uha_noki:20220412103357p:plain

二 リストの有効性

 

ドロップダウンリストのオプションに入力内容を制限する

 

1.セルB2にテキストを入力し、フォーマットします。

sheet.Range["B2"].Text = "部門:";

sheet.Range["B2"].Style.Font.IsBold = true;

sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;

2.リスト検証をセルC2に適用します。

sheet.Range["C2"].DataValidation.Values = new string { "セール", "人事", "研究開発", "ファイナンス" };

sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;

sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;

操作した結果:

f:id:uha_noki:20220412103500p:plain

三 データ有効性エラーメッセージ/警告をカスタマイズする

 

データの有効性がセルに適用された後、条件に相応しくないデータにはセルに正常に入力されません。要件を満たさないデータが強制的に入力されると、Excelは次のようなエラーメッセージを表示します。

f:id:uha_noki:20220412103550p:plain

Excelのデフォルトエラーメッセージを使用したくない場合は、次のコードを使用してエラーメッセージの内容をカスタマイズできます。

sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;

sheet.Range["C2"].DataValidation.ShowError = true;

sheet.Range["C2"].DataValidation.ErrorTitle = "エラー001";

sheet.Range["C2"].DataValidation.ErrorMessage = "ドロップダウンリストから項目を選択してください"; 

操作した結果:

f:id:uha_noki:20220412103634p:plain

完全なるコード:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Spire.Xls;

 

namespace Apply_data_validation_to_excel_cells

{

    class Program

    {

        static void Main(string args)

        {

            Workbook wb = new Workbook();

            Worksheet sheet = wb.Worksheets[0];

 

            //数値有効性を適用する

            sheet.Range["B9"].Text = "数字を入力してください";

            sheet.Range["B9"].Style.Font.IsBold = true;

            sheet.Range["B9"].Style.KnownColor = ExcelColors.Turquoise;

 

            sheet.Range["C9"].DataValidation.AllowType = CellDataType.Decimal;

            sheet.Range["C9"].DataValidation.Formula1 = "1";

            sheet.Range["C9"].DataValidation.Formula2 = "10";

            sheet.Range["C9"].DataValidation.CompareOperator = ValidationComparisonOperator.Between;

            sheet.Range["C9"].DataValidation.InputMessage = "このセルに1から10までの数字を入力してください";

            sheet.Range["C9"].Style.KnownColor = ExcelColors.LightGreen1;

 

            //ドロップダウンリストの有効性を適用する

            sheet.Range["B2"].Text = "部門";

            sheet.Range["B2"].Style.Font.IsBold = true;

            sheet.Range["B2"].Style.KnownColor = ExcelColors.Turquoise;

 

            sheet.Range["C2"].DataValidation.Values = new string[] { "セール", "人事", "研究開発", "ファイナンス" };

            sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;

            sheet.Range["C2"].Style.KnownColor = ExcelColors.LightGreen1;

 

            //有効性エラーメッセージをカスタマイズする

            sheet.Range["C2"].DataValidation.AlertStyle = AlertStyleType.Warning;

            sheet.Range["C2"].DataValidation.ShowError = true;

            sheet.Range["C2"].DataValidation.ErrorTitle = "エラー001";

            sheet.Range["C2"].DataValidation.ErrorMessage = "ドロップダウンリストから項目を選択してください";

 

            //ドキュメントを保存する

            wb.SaveToFile("result.xlsx", FileFormat.Version2010);

            System.Diagnostics.Process.Start("result.xlsx");

        }

    }

}

今回のExcelデータ検証をする方法は以上でした、最後まで読んでいただきありがとうございました。