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