コンボボックス型セルのデータの扱いについて
対象製品
SPREAD for Windows Forms 5.0J
詳細
下記にコンボボックス型セルのデータの扱い、およびExcelエクスポート時の注意点について記載します。
1.コンボボックス型セルのデータの扱いについて
2.Excelエクスポート時の注意点
1.コンボボックス型セルのデータの扱いについて
SPREADがシート上の各セル毎に保持できる値は、全てのセル型において常に単一となります。例えば数値型セルに100を入力した場合、SPREADはセルのValue値をそのままDouble型の100として保持します。値としては100ですが、表示時には「桁区切り記号」や「少数桁数」の指定によって表示フォーマットを決定します。つまり、表示時にはあくまでもセルのValue値を元に処理が行われます。
コンボボックス型セルでは一部の動作が異なりますが、セルのValue値は常に単一であるという考え方は全く同じです。
通常、コンボボックス型セルでの入力はItemsプロパティによって設定されたドロップダウンリストからの選択によって行われます。しかしながら、数値型セルなどと異なるのは、最終的にSPREADに保持させるValue値を3種類の形態のいずれかより選べるという自由度がある点です。
例えばコンボボックス型セルのEditorValueプロパティを「Index」に設定したケースです。
◎サンプルコード
上記コードを実装した場合、Itemsプロパティに設定された「AA」「BB」「CC」のいずれかのみ選択することができます。「AA」が選択された場合、EditorValueプロパティに設定された「Index」により、SPREADは当セルのValue値として「0(選択インデックス)」という単一値を保持します。
EditorValueプロパティはドロップダウンリストより選択されたアイテム情報を「Index」「String」「ItemData」のどれをValue値として保持させるかを決定するだけの機能になり、一旦保持されたセルのValue値がEditorValueプロパティの変更によって影響を受けることはありません。また、保持されたValue値を当プロパティの設定によって動的に切り替える機能もありません。
そのため、何らかの理由によってValue値をEditorValueプロパティの変更によって切り替えたいような場合は、独自の実装によってすべてのコンボボックス型セルのValue値を明示的に変更する必要があります。
2.Excelエクスポート時の注意点
Excelへエクスポートするとき、Value値に格納されている値を出力するため、EditorValueで設定した以外のデータをエクスポートすることは出来ません。
1.コンボボックス型セルのデータの扱いについて
2.Excelエクスポート時の注意点
1.コンボボックス型セルのデータの扱いについて
SPREADがシート上の各セル毎に保持できる値は、全てのセル型において常に単一となります。例えば数値型セルに100を入力した場合、SPREADはセルのValue値をそのままDouble型の100として保持します。値としては100ですが、表示時には「桁区切り記号」や「少数桁数」の指定によって表示フォーマットを決定します。つまり、表示時にはあくまでもセルのValue値を元に処理が行われます。
コンボボックス型セルでは一部の動作が異なりますが、セルのValue値は常に単一であるという考え方は全く同じです。
通常、コンボボックス型セルでの入力はItemsプロパティによって設定されたドロップダウンリストからの選択によって行われます。しかしながら、数値型セルなどと異なるのは、最終的にSPREADに保持させるValue値を3種類の形態のいずれかより選べるという自由度がある点です。
例えばコンボボックス型セルのEditorValueプロパティを「Index」に設定したケースです。
◎サンプルコード
Dim cb As New FarPoint.Win.Spread.CellType.ComboBoxCellType
cb.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.Index
cb.Items = New String() {"AA", "BB", "CC"}
cb.ItemData = New String() {"ああ", "いい", "うう"}
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cb
cb.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.Index
cb.Items = New String() {"AA", "BB", "CC"}
cb.ItemData = New String() {"ああ", "いい", "うう"}
FpSpread1.ActiveSheet.Cells(0, 0).CellType = cb
上記コードを実装した場合、Itemsプロパティに設定された「AA」「BB」「CC」のいずれかのみ選択することができます。「AA」が選択された場合、EditorValueプロパティに設定された「Index」により、SPREADは当セルのValue値として「0(選択インデックス)」という単一値を保持します。
EditorValueプロパティはドロップダウンリストより選択されたアイテム情報を「Index」「String」「ItemData」のどれをValue値として保持させるかを決定するだけの機能になり、一旦保持されたセルのValue値がEditorValueプロパティの変更によって影響を受けることはありません。また、保持されたValue値を当プロパティの設定によって動的に切り替える機能もありません。
そのため、何らかの理由によってValue値をEditorValueプロパティの変更によって切り替えたいような場合は、独自の実装によってすべてのコンボボックス型セルのValue値を明示的に変更する必要があります。
2.Excelエクスポート時の注意点
Excelへエクスポートするとき、Value値に格納されている値を出力するため、EditorValueで設定した以外のデータをエクスポートすることは出来ません。
関連情報
- 編集終了時にコンボボックス型セルに入力した文字列が消えてしまいます
- 【コンボボックス型セル】【マルチカラムコンボボックス型セル】コードによってドロップダウンリストを表示させることはできますか
- 【Tips】コンボボックス型セルの基本的な使用例
- 【コンボボックス型セル】【マルチカラムコンボボックス型セル】 Enterキーによりドロップダウンリストが表示されるのを抑止する方法はありますか?
- 【コンボボックス型セル】 初期値を設定したい
キーワード
「コンボボックス型セル/マルチカラムコンボボックス型セル」
この文書は、以前は次のFAQ IDで公開されていました : 12969