V5 ドキュメントはプレビュー版です。正式リリース(2026 年 8 月 19 日)まで内容が更新されることがあります。

表示形式は Excel と同じ書式コード文字列で指定します。V4 の CellDataFormatFlag*FormatArgs は廃止されました。XLSX との相互運用がロスレスになります。

書式コードと、それを適用した表示結果

適用する

using unvell.ReoGrid.Core;

ws.SetNumberFormat(0, 0, "#,##0");
ws.SetNumberFormat(RangePosition.Parse("B2:B100"), "#,##0.00");
ws.SetNumberFormat(1, 0, "yyyy/mm/dd");
ws.SetNumberFormat(2, 0, "0.00%");

string? code = ws.GetNumberFormat(0, 0);
ws.SetNumberFormat(0, 0, null);      // 書式を外す

範囲を指定するオーバーロードは、指定した範囲のセルすべてに書き込みます。 コントロールの選択範囲に適用する SetSelectionNumberFormat は使用範囲に クランプされますが、コア API はクランプしません — フル列(A:A)を渡すと 104 万セル分のエントリが作られるため、範囲は使用範囲に絞って指定してください。

表示文字列を読む

string shown = ws.GetDisplayText(0, 0);

// 書式コードが色を指定している場合はそれも取れる([Red] など)
string text = ws.GetFormattedText(0, 0, out uint? color);

よく使う書式コード

コード入力表示
#,##012345671,234,567
#,##0.001234.51,234.50
0.00%0.123412.34%
¥#,##01200¥1,200
yyyy/mm/dd日付2026/07/28
yyyy年m月d日日付2026年7月28日
h:mm:ss時刻13:45:30
@文字列そのまま

セクション

書式コードは ; 区切りで最大 4 セクションに分かれます。

正の数 ; 負の数 ; ゼロ ; 文字列
// 正;負;ゼロ;文字列 の 4 セクション
ws.SetNumberFormat(0, 0, "#,##0;[Red]-#,##0;\"-\";@");

// 条件付きセクション
ws.SetNumberFormat(1, 0, "[>=1000000]0.0,,\"M\";[>=1000]0.0,\"K\";0");

セクションを省略した場合の扱いは Excel と同じです(1 つだけならすべての数値に適用、 2 つなら正負に適用)。

色の指定

[Red] のような色指定に対応しています。描画時にセルの文字色を上書きします。

使える色
[Black] [Blue] [Cyan] [Green] [Magenta] [Red] [White] [Yellow]

GetFormattedText(r, c, out uint? color) はこの色を返します。書式が色を指定していなければ null です。

条件

[>=1000] のような条件をセクションの先頭に置けます。上から順に評価され、 最初に一致したセクションが使われます。

現在の制限

以下は未対応です。

  • 分数# ?/?
  • 指数0.00E+00
  • 和暦[$-411]ggge年m月d日

これらの書式コードを設定してもエラーにはなりませんが、期待どおりには表示されません。

直接フォーマットする

シートを介さずに書式を適用したい場合に使えます。

using unvell.ReoGrid.Core.Style;

if (NumberFormatter.TryFormat(1234.5, "#,##0.00", out string text, out uint? color))
	Console.WriteLine(text);      // "1,234.50"

書式コードを適用できない場合(解釈できないコードのほか、General や 空文字のように整形を行わないコードも含む)は false を返します。

保存

数値書式はセル単位で reogrid-json と XLSX の双方に往復します。XLSX では numFmt として書き出されるため、Excel で開いても同じ表示になります。

次に読む

ページの内容は役に立ちましたか?