ワークブック

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

328

コンポーネント構成: 215

コントロールはワークブック

ReoGridコントロールインスタンス自体がワークブックです。ワークブックレベルの機能に直接アクセスできます:

var workbook = reoGridControl1;

ワークシートへのアクセス

現在のワークシート

現在アクティブなワークシートを取得します:

var sheet = reoGridControl.CurrentWorksheet;

アクティブなワークシートを変更します:

reoGridControl.CurrentWorksheet = reoGridControl.Worksheets[2];

注意: CurrentWorksheetnull を設定することはできません。コントロールには常に少なくとも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);

ワークシートは、スプレッドシート下部のシートタブコントロールで切り替えます: 217

ワークシートの削除

// 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);

イベント

ワークシート管理イベント

イベントイベント引数説明
WorksheetCreatedWorksheetCreatedEventArgs新しいワークシートが作成された
WorksheetInsertedWorksheetInsertedEventArgsワークシートが挿入された(Index を提供)
WorksheetRemovedWorksheetRemovedEventArgsワークシートが削除された(Index を提供)
BeforeWorksheetNameChangeWorksheetNameChangingEventArgsワークシート名が変更される前(NewName を提供)
WorksheetNameChangedWorksheetNameChangingEventArgsワークシート名が変更された後
WorksheetNameBackColorChangedWorksheetEventArgsタブの背景色が変更された
WorksheetNameTextColorChangedWorksheetEventArgsタブのテキスト色が変更された

ファイルI/Oイベント

イベントイベント引数説明
WorkbookLoadedEventArgsワークブックファイルが読み込まれた後
WorkbookSavedEventArgsワークブックファイルが保存された後

その他のイベント

イベントイベント引数説明
SettingsChangedEventArgsワークブック設定が変更された後
ExceptionHappenedExceptionHappenEventArgs例外が発生した(ExceptionWorksheetCellPosition を提供)

例:イベントのリッスン

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}");
};

コンポーネントオブジェクト構造

/document/images/231

シートタブコントロール

Windows FormsとWPFの両エディションに、組み込みのシートタブUIコントロールが搭載されています。シートタブコントロールの詳細をご覧ください。

メモリワークブック

ReoGridはGUIを持たないメモリワークブックインスタンス(ワークシートのコレクション)を提供しています。メモリワークブックを参照してください。

関連トピック


ページの内容は役に立ちましたか?