GrapeCity SPREAD for WPF 2.0J > 開発者ガイド > セル型 > 数値型セル > 書式設定(数値型セル) |
数値型セルは、入力用および表示用の書式をそれぞれ設定できます。入力書式はセルが編集状態のときに適用され、表示書式はセルが非編集状態のときに適用されます。数値型セルの入力書式は、書式に合わないデータが入力されないようにユーザーの入力を制限します。
(左)入力書式の例 (右)表示書式の例
書式設定にはキーワードを使用する方法と、フィールド オブジェクトを使用する方法があります。入力および表示書式の設定方法について、それぞれ説明します。
FieldSet プロパティに入力書式を表す NumberFieldSet を設定します。NumberFieldSet クラスのコンストラクタでキーワードを使用して書式を設定します。なお、書式設定には次の構文を使用します。
構文
パターン文字列,正の数の接頭辞,正の数の接尾辞,負の数の接頭辞,負の数の接尾辞
例
#,##0,,,-,
使用できるキーワードは次のとおりです。
キーワード | 説明 |
---|---|
# | 数値の桁を表します(値が0の場合は何も表示しない) |
0 | 数値の桁を表します(値が0の場合は0を表示) |
, | 数値の整数部分を3桁区切りで表示するための桁区切り記号を表します。 |
. | 小数点の挿入位置を表します。キーワード内に含められるのは1つだけです。 |
次のサンプルコードは数値型セルの入力書式をキーワードで設定します。
C# |
コードのコピー |
---|---|
NumberCellType num = new NumberCellType(); num.FieldSet = new NumberFieldSet("#,##0,,,-,"); gcSpreadGrid1[0, 0].CellType = num; |
Visual Basic |
コードのコピー |
---|---|
Dim num As New NumberCellType() num.FieldSet = New NumberFieldSet("#,##0,,,-,") GcSpreadGrid1(0, 0).CellType = num |
FieldSet プロパティで入力書式を表す NumberFieldSet を取得し NumberFieldSet クラスのプロパティでフィールドオブジェクトを参照します。NumberFieldSet にはあらかじめ、接頭辞、整数部分、小数点、小数部分、接尾辞を表すフィールドオブジェクトが作成されています。開発者が新たにフィールドを追加または削除する必要はありません。NumberFieldSet の各プロパティで参照できるフィールドオブジェクトは次のとおりです。
NumberFieldSet のプロパティ | 対応するフィールド クラス | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
SignPrefix | NumberSignPrefixField | 接頭辞フィールド。主な設定は次のとおりです。
| ||||||||||
IntegerPart | NumberIntegerPartField | 整数入力フィールド。主な設定は次のとおりです。
| ||||||||||
DecimalSeparator | NumberDecimalSeparatorField | 小数点を表すフィールド | ||||||||||
DecimalPart | NumberDecimalPartField | 小数入力フィールド。主な設定は次のとおりです。
| ||||||||||
SignSuffix | NumberSignSuffixField | 接尾辞フィールド。主な設定は次のとおりです。
|
次のサンプルコードは数値型セルの入力書式をフィールド オブジェクトで設定します。
C# |
コードのコピー |
---|---|
NumberCellType num = new NumberCellType(); num.FieldSet.SignPrefix.NegativePattern = "-" ; num.FieldSet.IntegerPart.GroupSizes.Add(new IntegerItem(3)); num.FieldSet.IntegerPart.MinDigits = 1; gcSpreadGrid1[0, 0].CellType = num; |
Visual Basic |
コードのコピー |
---|---|
Dim num As New NumberCellType() num.FieldSet.SignPrefix.NegativePattern = "-" num.FieldSet.IntegerPart.GroupSizes.Add(New IntegerItem(3)) num.FieldSet.IntegerPart.MinDigits = 1 GcSpreadGrid1(0, 0).CellType = num |
DisplayFieldSet プロパティに表示書式を表す NumberDisplayFieldSet を設定します。NumberDisplayFieldSet クラスのコンストラクタでキーワードを使用して書式を設定します。なお、書式設定には入力書式と同様に次の構文を使用します。
構文
パターン文字列,正の数の接頭辞,正の数の接尾辞,負の数の接頭辞,負の数の接尾辞
例
[###:千円],,,▲,
使用できるキーワードは次のとおりです。
キーワード | 説明 |
---|---|
# | 数値の桁を表します(値が0の場合は何も表示しない) |
0 | 数値の桁を表します(値が0の場合は0を表示) |
, | 数値の整数部分を3桁区切りで表示するための桁区切り記号を表します。 |
. | 小数点の挿入位置を表します。キーワード内に含められるのは1つだけです。 |
[DBNum1]G | 数値を漢数字で表示(例)一億二千三百四十五万六千七百八十九 |
[DBNum2]G | 数字を漢数字(大字)で表示(例)壱億弐阡参百四拾伍萬六阡七百八拾九 |
[DBNum3]G | 数字を漢数字と全角の数字を組み合わせて表示(例)1億2千3百4十5万6千7百8十9 |
[DBNum4]G | 小数点以下の数字を漢数字で表示(例)〇.九分八厘七毛六糸五忽四微三纖二沙一塵 |
[:] | [###:千円] のように使用。コロンの前に記載した桁数をコロンの後に記載した文字列に置き換えて表示(例)1,234千円 |
次のサンプルコードは数値型セルの表示書式をキーワードで設定します。
C# |
コードのコピー |
---|---|
NumberCellType num = new NumberCellType(); num.DisplayFieldSet = new NumberDisplayFieldSet("[###:千円],,,▲,"); gcSpreadGrid1[0, 0].CellType = num; |
Visual Basic |
コードのコピー |
---|---|
Dim num As New NumberCellType() num.DisplayFieldSet = New NumberFieldSet("[###:千円],,,▲,") GcSpreadGrid1(0, 0).CellType = num |
DisplayFieldSet プロパティで表示書式を表す NumberDisplayFieldSet を取得し DisplayFields プロパティでフィールドオブジェクトのコレクションを参照します。フィールドオブジェクトを追加するにはコレクションの Add メソッドを使用します。表示書式で使用できるフィールドクラスは次のとおりです。これらのクラスを使用してフィールド オブジェクトを作成します。
フィールド クラス | 説明 | ||||||
---|---|---|---|---|---|---|---|
NumberSignDisplayField | 接頭辞フィールド。主な設定は次のとおりです。
| ||||||
NumberIntegerPartDisplayField | 整数表示フィールド。主な設定は次のとおりです。
| ||||||
NumberDecimalSeparatorDisplayField | 小数点を表すフィールド
| ||||||
NumberDecimalPartDisplayField | 小数表示フィールド。主な設定は次のとおりです。
| ||||||
NumberDecimalGeneralFormatDisplayField | 数値を漢数字で表示する場合に使用する漢数字表記フィールド。主な設定は次のとおりです。
| ||||||
NumberMoneyPatternDisplayField | 「1,234千円」のように桁数を指定して文字列で置き換えて表示する場合に使用する金額表記フィールド。主な設定は次のとおりです。
| ||||||
NumberLiteralDisplayField | リテラル文字フィールド。主な設定は次のとおりです。
|
次のサンプルコードは数値型セルの表示書式をフィールド オブジェクトで設定します。
C# |
コードのコピー |
---|---|
NumberCellType num = new NumberCellType(); num.DisplayFieldSet = new NumberDisplayFieldSet(); num.DisplayFieldSet.DisplayFields.Add(new NumberSignDisplayField() { NegativePattern="▲"}); num.DisplayFieldSet.DisplayFields.Add(new NumberMoneyPatternDisplayField(){Pattern="[###:千円]"}); gcSpreadGrid1[0, 0].CellType = num; |
Visual Basic |
コードのコピー |
---|---|
Dim num As New NumberCellType() num.DisplayFieldSet = New NumberDisplayFieldSet() num.DisplayFieldSet.DisplayFields.Add(New NumberSignDisplayField() With {.NegativePattern = "▲"}) num.DisplayFieldSet.DisplayFields.Add(New NumberMoneyPatternDisplayField() With {.Pattern = "[###:千円]"}) GcSpreadGrid1(0, 0).CellType = num |