SPREADデザイナで作成したデザインのままデータバインドを行う方法
SPREADデザイナでデザインを弄った後、
DataTableとSPERADをデータバインドしたら弄ったデザインが反映されない。
という現象が発生しました。
デザインをデザイナーで弄ったままにするための方策を記していきます。
プロパティ設定
対象SPREADのシートの
DataAutoSizeColumnsプロパティ
DataAutoCellTypesプロパティ
DataAutoHeadingsプロパティ
AutoGenerateColumnsプロパティ
をfalseに設定します。
fpSpread1.ActiveSheet.DataAutoSizeColumns = false;
fpSpread1.ActiveSheet.DataAutoCellTypes = false;
fpSpread1.ActiveSheet.DataAutoHeadings = false;
fpSpread1.ActiveSheet.AutoGenerateColumns = false;
データバインド
対象SPREADシートのプロパティを弄ったら、
データバインドを行います。
対象SPREADシートのDataSourceにバインドしたいDataTableを指定します。
対象SPREADシートの各カラムのDataFieldにバインドしたいDataTable列名を指定します。
//GetHogeを実行し、DataTableを取得
DataTable dt = GetHoge();
//シートにDataTableをバインド
fpSpread1.ActiveSheet.DataSource = dt;
//シートの各列にDataTableの列をバインド
fpSpread1.ActiveSheet.Columns[accountIndex].DataField = "ACNT_CODE";
fpSpread1.ActiveSheet.Columns[shopNameIndex].DataField = "ACNT_S_NAME";
fpSpread1.ActiveSheet.Columns[collateOnCountAllIndex].DataField = "COLLATE_ON_COUNT_ALL";
fpSpread1.ActiveSheet.Columns[collateOffCountAllIndex].DataField = "COLLATE_OFF_COUNT_ALL";
fpSpread1.ActiveSheet.Columns[collateOnCountIndex].DataField = "COLLATE_ON_COUNT";
上記設定により、
デザイナで設定したデザイナを崩すことなくデータバインドが可能になります。
ディスカッション
コメント一覧
まだ、コメントがありません