SPREADデザイナで作成したデザインのままデータバインドを行う方法
SPREADデザイナでデザインを弄った後、
DataTableとSPERADをデータバインドしたら弄ったデザインが反映されない。
という現象が発生しました。
デザインをデザイナーで弄ったままにするための方策を記していきます。
プロパティ設定
対象SPREADのシートの
DataAutoSizeColumnsプロパティ
DataAutoCellTypesプロパティ
DataAutoHeadingsプロパティ
AutoGenerateColumnsプロパティ
をfalseに設定します。
1 2 3 4 |
fpSpread1.ActiveSheet.DataAutoSizeColumns = false; fpSpread1.ActiveSheet.DataAutoCellTypes = false; fpSpread1.ActiveSheet.DataAutoHeadings = false; fpSpread1.ActiveSheet.AutoGenerateColumns = false; |
データバインド
対象SPREADシートのプロパティを弄ったら、
データバインドを行います。
対象SPREADシートのDataSourceにバインドしたいDataTableを指定します。
対象SPREADシートの各カラムのDataFieldにバインドしたいDataTable列名を指定します。
1 2 3 4 5 6 7 8 9 10 |
//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"; |
上記設定により、
デザイナで設定したデザイナを崩すことなくデータバインドが可能になります。
ディスカッション
コメント一覧
まだ、コメントがありません