ワークブックはReoGridの最上位コンテナです。複数のワークシートを保持し、ファイルI/O、設定、イベントを管理します。

コンポーネント構成:

コントロールはワークブック
ReoGridコントロールインスタンス自体がワークブックです。ワークブックレベルの機能に直接アクセスできます:
var workbook = reoGridControl1;
ワークシートへのアクセス
現在のワークシート
現在アクティブなワークシートを取得します:
var sheet = reoGridControl.CurrentWorksheet;
アクティブなワークシートを変更します:
reoGridControl.CurrentWorksheet = reoGridControl.Worksheets[2];
注意:
CurrentWorksheetにnullを設定することはできません。コントロールには常に少なくとも1つのアクティブなワークシートが必要です。
インデックスまたは名前によるアクセス
// By zero-based index
var sheet1 = reoGridControl.Worksheets[0];
// By name
var sheet2 = reoGridControl.Worksheets["Sheet2"];
ワークシートのインデックスを取得
int index = reoGridControl.GetWorksheetIndex("Sheet2");
// or
int index = reoGridControl.GetWorksheetIndex(mySheet);
名前でワークシートを検索
var sheet = reoGridControl.GetWorksheetByName("Sheet2");
名前の使用可否を確認
bool available = reoGridControl.CheckWorksheetNameAvailable("NewSheet");
ワークシート数
int count = reoGridControl.WorksheetCount;
// or
int count = reoGridControl.Worksheets.Count;
空かどうかを確認
bool empty = reoGridControl.IsEmpty;
ワークシートの管理
ワークシートの作成
// Create with auto-assigned name (Sheet1, Sheet2, etc.)
var sheet = reoGridControl.CreateWorksheet();
// Create with a specified name
var sheet = reoGridControl.CreateWorksheet("MySheet");
// Create with name and duplicate-check
var sheet = reoGridControl.CreateWorksheet("MySheet", checkNameExists: true);
// NewWorksheet is an alias for CreateWorksheet
var sheet = reoGridControl.NewWorksheet("MySheet");
注意: Excelと同様に、ReoGridでは1つのワークブック内に同じ名前のワークシートを2つ持つことはできません。
ワークシートの追加と挿入
// Add at the end
reoGridControl.AddWorksheet(sheet);
// Insert at a specific position (zero-based index)
reoGridControl.InsertWorksheet(1, sheet);
// Via the Worksheets collection
reoGridControl.Worksheets.Add(sheet);
reoGridControl.Worksheets.Insert(1, sheet);
ワークシートは、スプレッドシート下部のシートタブコントロールで切り替えます:

ワークシートの削除
// Remove by index
reoGridControl.RemoveWorksheet(0);
// Remove by instance
reoGridControl.RemoveWorksheet(sheet);
// Via the Worksheets collection
reoGridControl.Worksheets.Remove(sheet);
reoGridControl.Worksheets.RemoveAt(0);
ワークシートのコピー
// Copy the first worksheet and insert the copy at position 1
var copy = reoGridControl.CopyWorksheet(0, 1);
// Copy with a new name
var copy = reoGridControl.CopyWorksheet(0, 1, "CopiedSheet");
// Copy by worksheet instance
var copy = reoGridControl.CopyWorksheet(sheet, 2, "AnotherCopy");
ワークシートの移動
// Move the worksheet at index 0 to index 3
reoGridControl.MoveWorksheet(0, 3);
// Move by worksheet instance
reoGridControl.MoveWorksheet(sheet, 2);
ワークシートから親ワークブックを取得
var workbook = sheet.Workbook;
ワークシートコレクション
Worksheets プロパティは、完全なCRUD操作をサポートする WorksheetCollection を返します:
var worksheets = reoGridControl.Worksheets;
// Iterate all worksheets
foreach (var sheet in worksheets)
{
Console.WriteLine(sheet.Name);
}
// Check if a worksheet exists
bool exists = worksheets.Contains(sheet);
// Get count
int count = worksheets.Count;
// Create directly from collection
var newSheet = worksheets.Create("NewSheet");
// Clear all worksheets
worksheets.Clear();
ワークシート名とタブの外観
ワークシート名の変更
sheet.Name = "Sales Data";
タブの背景色
ワークシートタブの背景色をカスタマイズします:
sheet.NameBackColor = new SolidColor(Color.LightBlue);
タブのテキスト色
ワークシートタブのテキスト色をカスタマイズします:
sheet.NameTextColor = new SolidColor(Color.DarkBlue);
読み取り専用モード
ワークブック全体を読み取り専用モードに設定します:
reoGridControl.Readonly = true;
ワークブック設定
// Set a setting
reoGridControl.SetSettings(WorkbookSettings.View_ShowSheetTabControl, false);
// Check a setting
bool hasSheetTab = reoGridControl.HasSettings(WorkbookSettings.View_ShowSheetTabControl);
// Get all settings
var settings = reoGridControl.GetSettings();
利用可能なWorkbookSettings
| 設定 | 説明 |
|---|---|
View_ShowSheetTabControl | 下部にシートタブコントロールを表示する |
View_ShowScrolls | 水平・垂直スクロールバーの両方を表示する |
View_ShowHorScroll | 水平スクロールバーを表示する |
View_ShowVerScroll | 垂直スクロールバーを表示する |
コントロールの外観
ControlAppearanceStyle を使用してグリッドコントロールの外観をカスタマイズします:
var appearance = reoGridControl.ControlStyle;
// Change selection border width
appearance.SelectionBorderWidth = 2.0f;
// Change grid line width
appearance.GridLineWidth = 0.5f;
// Change individual colors
appearance[ControlAppearanceColors.GridBackground] = new SolidColor(Color.White);
appearance[ControlAppearanceColors.GridLine] = new SolidColor(Color.LightGray);
appearance[ControlAppearanceColors.SelectionBorder] = new SolidColor(Color.Blue);
appearance[ControlAppearanceColors.SelectionFill] = new SolidColor(60, 0, 0, 255);
// Column header colors
appearance[ControlAppearanceColors.ColHeadNormalStart] = new SolidColor(Color.WhiteSmoke);
appearance[ControlAppearanceColors.ColHeadNormalEnd] = new SolidColor(Color.LightGray);
appearance[ControlAppearanceColors.ColHeadText] = new SolidColor(Color.Black);
// Row header colors
appearance[ControlAppearanceColors.RowHeadNormal] = new SolidColor(Color.WhiteSmoke);
appearance[ControlAppearanceColors.RowHeadText] = new SolidColor(Color.Black);
// Sheet tab colors
appearance[ControlAppearanceColors.SheetTabBackground] = new SolidColor(Color.White);
appearance[ControlAppearanceColors.SheetTabText] = new SolidColor(Color.Black);
appearance[ControlAppearanceColors.SheetTabSelected] = new SolidColor(Color.Blue);
外観カラーキー
| カラーキー | 説明 |
|---|---|
GridBackground | ワークシートの背景 |
GridText | デフォルトのテキスト色 |
GridLine | グリッド線の色 |
SelectionBorder | 選択範囲の枠線色 |
SelectionFill | 選択範囲の塗りつぶし色 |
ColHeadNormalStart/End | 列ヘッダーのグラデーション(通常状態) |
ColHeadHoverStart/End | 列ヘッダーのグラデーション(ホバー状態) |
ColHeadSelectedStart/End | 列ヘッダーのグラデーション(選択状態) |
ColHeadFullSelectedStart/End | 列ヘッダーのグラデーション(全選択状態) |
ColHeadText | 列ヘッダーのテキスト色 |
RowHeadNormal | 行ヘッダーの背景(通常状態) |
RowHeadHover | 行ヘッダーの背景(ホバー状態) |
RowHeadSelected | 行ヘッダーの背景(選択状態) |
RowHeadFullSelected | 行ヘッダーの背景(全選択状態) |
RowHeadText | 行ヘッダーのテキスト色 |
SheetTabBorder | シートタブの枠線色 |
SheetTabBackground | シートタブの背景 |
SheetTabText | シートタブのテキスト色 |
SheetTabSelected | アクティブシートタブの色 |
OutlinePanelBorder | アウトラインパネルの枠線 |
OutlinePanelBackground | アウトラインパネルの背景 |
OutlineButtonBorder | アウトライン展開/折りたたみボタンの枠線 |
OutlineButtonText | アウトラインボタンのテキスト |
LeadHeadNormal | リードヘッダー(左上隅)の通常色 |
LeadHeadHover | リードヘッダーのホバー色 |
LeadHeadSelected | リードヘッダーの選択色 |
詳細についてはコントロールの外観を参照してください。
ファイルI/O(保存と読み込み)
保存
// Save to file (format auto-detected from extension)
reoGridControl.Save("workbook.xlsx");
// Save with explicit format
reoGridControl.Save("workbook.xlsx", FileFormat.Excel2007);
// Save with encoding
reoGridControl.Save("workbook.csv", FileFormat.CSV, Encoding.UTF8);
// Save to stream
reoGridControl.Save(stream, FileFormat.Excel2007);
読み込み
// Load from file
reoGridControl.Load("workbook.xlsx");
// Load with explicit format
reoGridControl.Load("workbook.xlsx", FileFormat.Excel2007);
// Load with encoding
reoGridControl.Load("workbook.csv", FileFormat.CSV, Encoding.UTF8);
// Load from stream
reoGridControl.Load(stream, FileFormat.Excel2007);
詳細についてはインポートとエクスポートを参照してください。
ワークブックのリセット
ワークブックを初期状態にリセットします(すべてのワークシートとコンテンツがクリアされます):
reoGridControl.Reset();
例外処理
例外の一元管理のために、ワークブックに例外を通知します:
reoGridControl.NotifyExceptionHappen(sheet, exception);
reoGridControl.NotifyExceptionHappen(sheet, exception, cellPosition);
イベント
ワークシート管理イベント
| イベント | イベント引数 | 説明 |
|---|---|---|
WorksheetCreated | WorksheetCreatedEventArgs | 新しいワークシートが作成された |
WorksheetInserted | WorksheetInsertedEventArgs | ワークシートが挿入された(Index を提供) |
WorksheetRemoved | WorksheetRemovedEventArgs | ワークシートが削除された(Index を提供) |
BeforeWorksheetNameChange | WorksheetNameChangingEventArgs | ワークシート名が変更される前(NewName を提供) |
WorksheetNameChanged | WorksheetNameChangingEventArgs | ワークシート名が変更された後 |
WorksheetNameBackColorChanged | WorksheetEventArgs | タブの背景色が変更された |
WorksheetNameTextColorChanged | WorksheetEventArgs | タブのテキスト色が変更された |
ファイルI/Oイベント
| イベント | イベント引数 | 説明 |
|---|---|---|
WorkbookLoaded | EventArgs | ワークブックファイルが読み込まれた後 |
WorkbookSaved | EventArgs | ワークブックファイルが保存された後 |
その他のイベント
| イベント | イベント引数 | 説明 |
|---|---|---|
SettingsChanged | EventArgs | ワークブック設定が変更された後 |
ExceptionHappened | ExceptionHappenEventArgs | 例外が発生した(Exception、Worksheet、CellPosition を提供) |
例:イベントのリッスン
reoGridControl.WorksheetCreated += (s, e) =>
{
Console.WriteLine($"Created worksheet: {e.Worksheet.Name}");
};
reoGridControl.WorksheetInserted += (s, e) =>
{
Console.WriteLine($"Inserted worksheet '{e.Worksheet.Name}' at index {e.Index}");
};
reoGridControl.WorksheetRemoved += (s, e) =>
{
Console.WriteLine($"Removed worksheet at index {e.Index}");
};
reoGridControl.ExceptionHappened += (s, e) =>
{
Console.WriteLine($"Error in {e.Worksheet?.Name}: {e.Exception.Message}");
};
コンポーネントオブジェクト構造

シートタブコントロール
Windows FormsとWPFの両エディションに、組み込みのシートタブUIコントロールが搭載されています。シートタブコントロールの詳細をご覧ください。
メモリワークブック
ReoGridはGUIを持たないメモリワークブックインスタンス(ワークシートのコレクション)を提供しています。メモリワークブックを参照してください。
関連トピック
- ワークシート — ワークシートの操作と機能
- インポートとエクスポート — ファイルI/O(Excel、CSV、RGF)
- コントロールの外観 — 外観のカスタマイズ
- シートタブコントロール — シートタブUI
- メモリワークブック — GUI無しのワークブック