チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.XLS for .NET»セル»C#:Excel セルの数値書式を設定する方法
2025-04-03

C#:Excel セルの数値書式を設定する方法

Excel ワークシートでは、生データが単なる数値として表示されることが多く、直感的に理解しづらい場合があります。数値書式を設定することで、これらの数値をより分かりやすい形式に変換できます。たとえば、売上データを通貨形式に設定すると、通貨記号や桁区切り記号が追加され、一目で金額を把握できるようになります。また、市場シェアデータをパーセンテージ形式に設定することで、各部分の割合が明確になり、迅速な比較や分析が可能になります。本記事では、Spire.XLS for .NET を使用して C# で Excel セルの数値書式を設定する方法を解説します。

Spire.XLS for .NET をインストールします

まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

Excel の数値書式における記号

Excel の数値書式コードでは、数値の表示方法を定義するためにさまざまな記号が使用されます。以下に、一般的な記号の詳細な説明を示します。

記号 説明
0 必須の数字プレースホルダー。必要に応じてゼロで埋められます。
# 任意の数字プレースホルダー。意味のないゼロは表示されません。
? 任意の数字プレースホルダー。小数点の位置を揃えるためにスペースが追加され、小数の末尾にゼロが補われることがあります。
. 小数点を表します。
, 桁区切り記号として使用されます。
; 正、負、ゼロ、およびテキストの各値に対する書式コードのセクションを区切ります。
% 数値を100倍し、パーセント記号を追加します。
E - + 指数表記(科学技術表記)を示します。
通貨記号($, €, ¥ など) 対応する通貨記号を表示します。
[Color] 数値の表示に色を指定します。
日付/時刻(yyyy, mmmm, mm, dd, hh, ss, AM/PM) それぞれ年、月(完全名)、月、日、時、分、秒、および12時間制の指標を表します。

C# で Excel セルの数値書式を設定する

Spire.XLS for .NET では、CellRange.NumberValue プロパティを使用してセルの数値を設定し、CellRange.NumberFormat プロパティを使用して数値書式コードを設定できます。詳細な手順は以下のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.Worksheets[] プロパティを使用して、指定のワークシートを取得します。
  • Worksheet.Range[] プロパティを使用して、指定のセルを取得します。
  • CellRange.Text プロパティを使用して、指定のセルにテキストを追加します。
  • CellRange.NumberValue プロパティを使用して、指定のセルに数値を追加し、その後、CellRange.NumberFormat プロパティを使用して数値書式を設定します。
  • Workbook.SaveToFile() メソッドを使用して、結果のファイルを保存します。
  • C#
using Spire.Xls;

namespace SetNumberFormat
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbook インスタンスを作成
            Workbook workbook = new Workbook();

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

            // 指定したセルにテキストを追加し、セルのスタイルを設定
            sheet.Range["B3"].Text = "値";
            sheet.Range["C3"].Text = "数値書式";
            sheet.Range["D3"].Text = "表示";
            sheet.Range["E3"].Text = "備考";
            sheet.Range["B3:E3"].Style.Font.IsBold = true;
            sheet.Range["B3:E3"].Style.KnownColor = ExcelColors.SkyBlue;

            // ゼロパディングされた数値
            sheet.Range["B4"].Text = "123";
            sheet.Range["C4"].Text = "0000";
            sheet.Range["D4"].NumberValue = 123;
            sheet.Range["D4"].NumberFormat = "0000";
            sheet.Range["E4"].Text = "ゼロパディングされた数値";

            // 千位区切り付き小数点2桁の数値
            sheet.Range["B5"].Text = "1234.5678";
            sheet.Range["C5"].Text = "#,##0.00";
            sheet.Range["D5"].NumberValue = 1234.5678;
            sheet.Range["D5"].NumberFormat = "#,##0.00";
            sheet.Range["E5"].Text = "千位区切り付き小数点2桁の数値";

            // 赤色で表示される負の数
            sheet.Range["B6"].Text = "-1234.5678";
            sheet.Range["C6"].Text = "0;[Red]-0";
            sheet.Range["D6"].NumberValue = -1234.5678;
            sheet.Range["D6"].NumberFormat = "0;[Red]-0";
            sheet.Range["E6"].Text = "赤色で表示される負の数";

            // 小数点1桁のパーセンテージ
            sheet.Range["B7"].Text = "0.12345";
            sheet.Range["C7"].Text = "0.0%";
            sheet.Range["D7"].NumberValue = 0.12345;
            sheet.Range["D7"].NumberFormat = "0.0%";
            sheet.Range["E7"].Text = "小数点1桁のパーセンテージ";

            // テキスト付き数値
            sheet.Range["B8"].Text = "1234.5678";
            sheet.Range["C8"].Text = "\"数量: \"0";
            sheet.Range["D8"].NumberValue = 1234.5678;
            sheet.Range["D8"].NumberFormat = "\"数量: \"0";
            sheet.Range["E8"].Text = "テキスト付き数値";

            // 通貨記号付き数値
            sheet.Range["B9"].Text = "1234.5678";
            sheet.Range["C9"].Text = "$#,##0.00";
            sheet.Range["D9"].NumberValue = 1234.5678;
            sheet.Range["D9"].NumberFormat = "$#,##0.00";
            sheet.Range["E9"].Text = "通貨記号付き数値";

            // 指数表記
            sheet.Range["B10"].Text = "1234.5678";
            sheet.Range["C10"].Text = "0.00E+00";
            sheet.Range["D10"].NumberValue = 1234.5678;
            sheet.Range["D10"].NumberFormat = "0.00E+00";
            sheet.Range["E10"].Text = "指数表記";

            // 分数表記
            sheet.Range["B11"].Text = "0.5";
            sheet.Range["C11"].Text = "# ?/?";
            sheet.Range["D11"].NumberValue = 0.5;
            sheet.Range["D11"].NumberFormat = "# ?/?";
            sheet.Range["E11"].Text = "分数表記";

            // 日付
            sheet.Range["B12"].Text = "45930";
            sheet.Range["C12"].Text = "yyyy-MM-dd";
            sheet.Range["D12"].NumberValue = 45930;
            sheet.Range["D12"].NumberFormat = "yyyy-MM-dd";
            sheet.Range["E12"].Text = "日付";

            // 時刻
            sheet.Range["B13"].Text = "0.5";
            sheet.Range["C13"].Text = "h:mm:ss AM/PM";
            sheet.Range["D13"].NumberValue = 0.5;
            sheet.Range["D13"].NumberFormat = "h:mm:ss AM/PM";
            sheet.Range["E13"].Text = "時刻";

            // 使用範囲のセルスタイルを設定
            sheet.AllocatedRange.Style.Font.FontName = "Calibri";
            sheet.AllocatedRange.Style.Font.Size = 11;
            sheet.AllocatedRange.Style.HorizontalAlignment = HorizontalAlignType.Left;

            // 列幅を自動調整
            sheet.AutoFitColumn(2);
            sheet.AutoFitColumn(3);
            sheet.AutoFitColumn(4);
            sheet.AutoFitColumn(5);

            // 結果ファイルを保存
            workbook.SaveToFile("output/Excelセルの数値書式.xlsx", ExcelVersion.Version2016);
            workbook.Dispose();
        }
    }
}

Customize Number Format of Excel Cells Using Spire.XLS for .Net with C#

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 28 times