0
0

C#でExcelにドロップダウンリストを作成する

Posted at

ドロップダウンリストは、ユーザーが事前に定義されたリストから値のみを選択することを保証し、データ入力エラーを減らすだけでなく、時間を節約し、効率を向上させます。
MS Excelでは、「データ検証 」機能を使ってドロップダウンリストを作成することができますが、この記事では、C#を使ってExcelで無料の.NETライブラリを使用してドロップダウンリストを作成する方法を2つの例で紹介します。

ドロップダウン・リストを作成する無料のC#ライブラリ

Free Spire.XLS for .NETは、.NET(C#、VB.NET、ASP.NET、.NET Core、.NET 5.0、.NET 6.0、MonoAndroid、Xamarin.iOS)アプリケーションでExcelファイルを操作するための無料のライブラリです。
Excelのセルにドロップダウンリストを追加するには、NuGet経由でプロジェクトに無料のAPIをインストールするか、以下のリンクからダウンロードしてください。

例 1: 文字列配列を使ってドロップダウンリストを作成する

この例では、まず XlsRange.DataValidation.Values プロパティでドロップダウンリストのソース値として文字列配列を定義し、IsSuppressDropDownArrow プロパティの値をFalseに設定してドロップダウンアローを適用します。

出力結果は次のようになる:
エクセルのドロップダウンリスト1.png

サンプルC#コード:

using Spire.Xls;

namespace DropdownList
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbookオブジェクトの作成
            Workbook workbook = new Workbook();

            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //セルB2にテキストを追加しそのフォントスタイルを設定する
            sheet.Range["B2"].Value = "部署";
            sheet.Range["B2"].Style.Font.IsBold = true;
            sheet.Range["B2"].Style.KnownColor = ExcelColors.LightYellow;

            //ドロップダウンリストの値を設定する
            sheet.Range["C2"].DataValidation.Values = new string[] { "経理部", "営業部", "技術部", "人事部", "法務部" };

            //指定したセルにドロップダウンリストを作成する
            sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;

            //結果文書を保存する
            workbook.SaveToFile("ExcelDropdownList.xlsx", ExcelVersion.Version2016);
        }
    }
}

例 2: セル範囲の値を使用してドロップダウンリストを作成する

この例では、XlsRange.DataValidation.DataRange プロパティを使用して、指定されたデータ範囲をドロップダウンリストのソースとして参照しています。
この方法でドロップダウンリストを作成するとより柔軟で、ドロップダウンリストの値を更新したい場合は、対応するセルのデータを直接更新できます。

出力結果は次のようになる:
エクセルのドロップダウンリスト2.png

サンプルC#コード:

using Spire.Xls;

namespace DropdownList2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbookオブジェクトの作成
            Workbook workbook = new Workbook();

            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //セルC2にテキストを追加しそのフォントスタイルを設定する
            sheet.Range["C2"].Value = "年齢";
            sheet.Range["C2"].Style.Font.IsBold = true;
            sheet.Range["C2"].Style.KnownColor = ExcelColors.PaleBlue;

            //指定したセルに値を追加する
            sheet.Range["A12"].Value = "20-29";
            sheet.Range["A13"].Value = "30-39";
            sheet.Range["A14"].Value = "40-49";

            //データ検証ソースとして指定したデータ範囲を参照してドロップダウンリストを作成する
            sheet.Range["C3"].DataValidation.DataRange = sheet.Range["A12:A14"];

            //結果文書を保存する
            workbook.SaveToFile("ExcelDropdownList2.xlsx", ExcelVersion.Version2016);
        }
    }
}

-- 無料の.NETライブラリで利用可能なExcel文書処理機能についてもっと知りたい方は、クリックして他の例をご覧ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0