コンボボックス型セルのデータの扱いについて

文書番号 : 38913     文書種別 : 使用方法     登録日 : 2015/06/29     最終更新日 : 2015/06/29
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
下記にコンボボックス型セルのデータの扱い、およびExcelエクスポート時の注意点について記載します。

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

上記コードを実装した場合、Itemsプロパティに設定された「AA」「BB」「CC」のいずれかのみ選択することができます。「AA」が選択された場合、EditorValueプロパティに設定された「Index」により、SPREADは当セルのValue値として「0(選択インデックス)」という単一値を保持します。

EditorValueプロパティの設定

EditorValueプロパティはドロップダウンリストより選択されたアイテム情報を「Index」「String」「ItemData」のどれをValue値として保持させるかを決定するだけの機能になり、一旦保持されたセルのValue値がEditorValueプロパティの変更によって影響を受けることはありません。また、保持されたValue値を当プロパティの設定によって動的に切り替える機能もありません。

そのため、何らかの理由によってValue値をEditorValueプロパティの変更によって切り替えたいような場合は、独自の実装によってすべてのコンボボックス型セルのValue値を明示的に変更する必要があります。

2.Excelエクスポート時の注意点

Excelへエクスポートするとき、Value値に格納されている値を出力するため、EditorValueで設定した以外のデータをエクスポートすることはできません。

関連情報
キーワード
セル型