ReoGridはワークシートの動作を制御するための2つのメカニズムを提供します:WorksheetSettings(フラグベースのオン/オフ設定)とWorksheetOptions(値ベースの設定)です。
var sheet = reoGridControl.CurrentWorksheet;
// Enable a setting
sheet.EnableSettings(WorksheetSettings.Edit_Readonly);
// Disable a setting
sheet.DisableSettings(WorksheetSettings.Edit_Readonly);
// Set with explicit boolean
sheet.SetSettings(WorksheetSettings.Edit_Readonly, true);
// Check if a setting is enabled
bool isReadonly = sheet.HasSettings(WorksheetSettings.Edit_Readonly);
sheet.SettingsChanged += (s, e) =>
{
Console.WriteLine("Settings changed");
};
| 設定 | 説明 |
|---|
Behavior_DoubleClickToFitRowHeight | ダブルクリックで行の高さを自動調整する |
Behavior_DoubleClickToFitColumnWidth | ダブルクリックで列の幅を自動調整する |
Behavior_MouseWheelToScroll | マウスホイールでスクロールする |
Behavior_MouseWheelToZoom | Ctrl+マウスホイールでズームする |
Behavior_ShortcutKeyToZoom | Ctrl+プラス/Ctrl+マイナスでズームする |
Behavior_DragToMoveCells | ドラッグで選択範囲を移動またはコピーする |
Behavior_DragToMoveColumnHeader | ヘッダーのドラッグで列を移動する(予約済み) |
Behavior_ScrollToFocusCell | フォーカスセルが常に表示されるようにスクロールする |
Behavior_AllowUserChangingPageBreaks | マウスでページブレークを調整できるようにする |
| 設定 | 説明 |
|---|
Edit_Readonly | ワークシートを読み取り専用にする |
Edit_AutoFormatCell | ユーザー入力後にデータを自動フォーマットする |
Edit_FriendlyPercentInput | パーセント書式のセル入力時に % 記号を表示する |
Edit_AutoAdjustRowHeight | フォントサイズが大きくなった時に行の高さを自動調整する |
Edit_AllowAdjustRowHeight | ユーザーによる行の高さのドラッグ調整を許可する |
Edit_AllowAdjustColumnWidth | ユーザーによる列の幅のドラッグ調整を許可する |
Edit_DragSelectionToMoveCells | ドラッグ&ドロップでセルの内容を移動する |
Edit_DragSelectionToFillSerial | ドラッグで自動入力する |
| 設定 | 説明 |
|---|
View_ShowColumnHeader | 列ヘッダーを表示する |
View_ShowRowHeader | 行ヘッダーを表示する |
View_ShowHorizontalRuler | 水平ルーラーを表示する(予約済み) |
View_ShowVerticalRuler | 垂直ルーラーを表示する(予約済み) |
View_ShowGuideLine | グリッド線を表示する |
View_ShowHiddenCellLine | 非表示の行/列のインジケーター線を表示する |
View_AllowShowRowOutlines | 行アウトラインパネルを表示する |
View_AllowShowColumnOutlines | 列アウトラインパネルを表示する |
View_ShowPageBreaks | ページブレーク線を表示する |
View_AllowCellTextOverflow | セルテキストが隣接セルにオーバーフローすることを許可する |
View_ShowPrintAreasEnable | 印刷範囲の境界を表示する |
| 設定 | 説明 |
|---|
Formula_AutoUpdateReferenceCell | 行/列変更時に数式参照を自動更新する |
Formula_AutoPickingAddress | 数式編集中にセルアドレスの選択を許可する |
Formula_AutoFormat | 数式の自動修正とフォーマットを行う |
Options プロパティは、値ベースの設定による追加の設定を提供します:
var options = sheet.Options;
| プロパティ | 型 | デフォルト | 説明 |
|---|
FormulaCalculationTiming | enum | Auto | 数式を計算するタイミング(Auto、OnDemandなど) |
FormulaCalculationPrecision | enum | Double | 数式計算の精度 |
| プロパティ | 型 | デフォルト | 説明 |
|---|
AlwaysMoveSelectionToUnlockedCell | bool | false | ワークシートがロックされている時に、ロックされていないセルに選択を自動移動する |
AllowSelectCellWhenHitDropdownCell | bool | true | ドロップダウンセルをクリックした時にセル選択を許可する |
| プロパティ | 型 | デフォルト | 説明 |
|---|
AutoHideHorizontalScrollBar | bool | false | 不要な時に水平スクロールバーを自動非表示にする |
AutoHideVerticalScrollBar | bool | false | 不要な時に垂直スクロールバーを自動非表示にする |
これらのオプションは、大きなワークシートの非同期セル処理を制御します:
| プロパティ | 型 | デフォルト | 説明 |
|---|
AutoSuspendProcessesForFasterDataLoading | bool | false | 一括データ読み込み中にプロセスを一時停止してパフォーマンスを向上させる |
AllowAsyncProcess | bool | false | 非同期セル処理を有効にする |
AsyncProcessDelay | int | — | 非同期処理開始までの遅延(ミリ秒) |
AsyncProcessIntervalTime | int | — | 非同期処理バッチ間の間隔(ミリ秒) |
AsyncProcessBatchSize | int | — | バッチごとに処理するセル数 |
var options = sheet.Options;
// Enable async processing for better performance with large datasets
options.AllowAsyncProcess = true;
options.AsyncProcessBatchSize = 1000;
options.AsyncProcessIntervalTime = 50;
// Suspend processes during bulk loading
options.AutoSuspendProcessesForFasterDataLoading = true;
// Copy options from another worksheet
sheet.Options.CopyFrom(otherSheet.Options);
// Clone options for a new worksheet
var newOptions = sheet.Options.Clone(newSheet);
sheet.SetSettings(WorksheetSettings.Edit_Readonly, true);
sheet.SetSettings(WorksheetSettings.View_ShowRowHeader, false);
sheet.SetSettings(WorksheetSettings.View_ShowColumnHeader, false);
sheet.SetSettings(WorksheetSettings.View_ShowGuideLine, false);
sheet.SetSettings(WorksheetSettings.Edit_AllowAdjustRowHeight, false);
sheet.SetSettings(WorksheetSettings.Edit_AllowAdjustColumnWidth, false);
sheet.SetSettings(WorksheetSettings.Behavior_DoubleClickToFitRowHeight, false);
sheet.SetSettings(WorksheetSettings.Behavior_DoubleClickToFitColumnWidth, false);
sheet.Options.AutoSuspendProcessesForFasterDataLoading = true;
sheet.SuspendConditionalStyleUpdate = true;
// Load data...
sheet.SuspendConditionalStyleUpdate = false;
sheet.ApplyAllConditionalStyles();