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 日間有効な一時ライセンスを取得してください。