mcpField
S
syncfusion-wpf-excel-like-grid

syncfusion-wpf-excel-like-grid

github.com/syncfusion開発5128 回インストール1 週間前に更新
リポジトリ

syncfusion-wpf-excel-like-grid について

WPF 開発者向けに Syncfusion GridControl の実装方法を解説するガイドです。表の設定や操作に加え、仮想化、数式、Excel のインポートとエクスポートを扱います。

主な機能

  1. 01セル型とスタイルの設定
  2. 02行、列、選択モードの管理
  3. 03数式計算と関数の追加
  4. 04クリップボードと元に戻す・やり直し
  5. 05Excel ファイルのインポートとエクスポート
  6. 06仮想データの読み込みと性能調整

活用シーン

  1. 01WPF アプリへのグリッド追加
  2. 02大規模な表データのオンデマンド読み込み
  3. 03数式セルと編集機能の実装
  4. 04Excel ワークブックの入出力

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-excel-like-grid

インストール後、Claude Code で/syncfusion-wpf-excel-like-gridを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
advanced-features.md
appearance-and-styling.md
cell-types.md
editing-clipboard-undo.md
excel-import-export.md
formula-cells.md
getting-started.md
interactive-features.md
managing-rows-and-columns.md
performance-virtualization.md
selection-and-events.md

詳細

Syncfusion WPF GridControl の実装

Syncfusion WPF GridControl は、高性能なセル指向のグリッドであり、柔軟な表形式の表示エンジンとして機能します。データ構造を前提とせず、QueryCellInfo による仮想(オンデマンド)データ読み込みに対応し、数式、インポート/エクスポート、クリップボード操作、結合セル、20 種類以上の組み込みセルタイプなど、Excel のような機能を備えています。

このスキルを使用する場面

  • WPF アプリケーションに GridControl を追加する(XAML またはコードビハインド)
  • セルへの直接代入、または仮想の QueryCellInfo イベントを使ってセルにデータを入力する
  • セルタイプ(CheckBox、ComboBox、DateTimeEdit、FormulaCell など)を設定する
  • セルの外観(背景、フォント、罫線、データ形式)をカスタマイズする
  • 行と列を管理する(挿入、削除、移動、固定、非表示)
  • クリップボード、元に戻す/やり直し、編集動作を扱う
  • インタラクティブ機能:列のドラッグ&ドロップ、セルのドラッグ&ドロップ、サイズ変更
  • 数式セルのサポートと組み込みの数式ライブラリ
  • グリッドデータを Excel にエクスポートする。Excel ブックをグリッドにインポートする
  • 選択モード、イベント、仮想モードのパターン
  • パフォーマンスの調整、仮想化、結合範囲、ズーム
  • 高度な機能:コメント、ツールチップ、印刷、シリアル化、自動サイズ調整

ドキュメントとナビゲーションガイド

はじめに

📄 参照: references/getting-started.md

  • 必要なアセンブリ参照
  • デザイナーまたはプログラムから GridControl を追加する
  • RowCount と ColumnCount を設定する
  • ループまたは仮想イベント QueryCellInfo でデータを入力する
  • 最小限の動作例
セルタイプ

📄 参照: references/cell-types.md

  • 20 種類以上の組み込みセルタイプ:Header、Static、CheckBox、Button、Image、ComboBox、 DropDownList、DateTimeEdit、IntegerEdit、DoubleEdit、CurrencyEdit、PercentEdit、 MaskEdit、UpDownEdit、RichText、DataBoundTemplate、NestedGrid(ScrollGrid)
  • 個々のセルまたは範囲に Style.CellType を設定する
  • ChoiceList と ItemsSource を使った ComboBox
  • カスタムセルタイプ(CellModel + CellRenderer パターン)
外観とスタイル設定

📄 参照: references/appearance-and-styling.md

  • GridStyleInfo クラスとスタイル継承階層
  • 揮発性セルスタイルと描画セルスタイル
  • 基本スタイル(BaseStylesMap)、TableStyle、RowStyles、ColumnStyles
  • 背景(単色/グラデーション)、前景、フォント、テキストの向き、罫線
  • 数値と DateTime の書式文字列、FormatProvider インターフェイス
行と列の管理

📄 参照: references/managing-rows-and-columns.md

  • 行/列の数と既定のサイズを設定する
  • 行/列を非表示および再表示する(SetHidden)
  • 行/列を固定する。フッターとヘッダーの行/列
  • 実行時に行/列を挿入、移動、削除する
  • サイズ変更の動作とサイズ変更コントローラーの無効化
編集、クリップボード、元に戻す/やり直し

📄 参照: references/editing-clipboard-undo.md

  • CopyPasteOption フラグ(CopyText、CopyCellData、PasteCell、CutCell、XmlCopyPaste)
  • カスタム区切り文字やバッファーベースの操作に使う TextDataExchange
  • クリップボードイベントと IGridCopyPaste によるカスタム実装
  • CommandStack:元に戻す/やり直し、BeginTrans、CommitTrans、Rollback
  • 拡張された元に戻す/やり直し機能のために派生コマンドを作成する
インタラクティブ機能

📄 参照: references/interactive-features.md

  • 列のドラッグ&ドロップ(AllowDragColumns)
  • Excel のようなセルのドラッグ&ドロップ(AllowDragDrop、DataObjectConsumerOptions)
  • 実行時の行/列のサイズ変更とサイズ変更コントローラーの無効化
  • 行と列を視覚的に非表示および再表示する(HiddenBorderBrush、SetHidden)
数式セル

📄 参照: references/formula-cells.md

  • 個々のセルまたはグリッド全体で FormulaCell 型を有効にする
  • 組み込みの数式ライブラリ(150 以上の関数:Sum、Avg、Sqrt、Pow、Cos、Sin など)
  • 算術演算子と計算の優先順位
  • セル間参照(A1 形式)、名前付き範囲
  • ライブラリにカスタム数式関数を追加する
Excel のインポートとエクスポート

📄 参照: references/excel-import-export.md

  • 必要なアセンブリ(Syncfusion.XlsIO、Syncfusion.GridConverter.Wpf)
  • グリッド全体または選択したコンテンツを .xls / .xlsx にエクスポートする
  • Excel ブックをインポートする:スタイル、数式、条件付き書式、ウィンドウ枠の固定、 ハイパーリンク、コメント
  • 大容量ブックの仮想化インポート
選択とイベント

📄 参照: references/selection-and-events.md

  • 選択モード:セル、行、列(AllowSelection フラグ)
  • 仮想データ読み込みのための QueryCellInfo イベントパターン
  • ビュー固有のオーバーライドに使う PrepareRenderCell
  • 一般的なグリッドイベント:CommitCellInfo、CurrentCellActivated、クリップボードイベント、 RowsInserted、ColumnsMoved、ResizingRows など
  • GridRangeInfo と SelectedRanges の操作
パフォーマンスと仮想化

📄 参照: references/performance-virtualization.md

  • 仮想モードの基本と QueryCellInfo のベストプラクティス
  • カバー範囲(CoveredCells)とフローティングセル
  • グリッドのズーム
  • 高頻度更新のパターン
高度な機能

📄 参照: references/advanced-features.md

  • セルコメント、入力メッセージのヒント、ツールチップ
  • セルレイアウトのカスタマイズ(カバーセル、結合範囲、自動調整)
  • グリッドコンテンツの印刷
  • シリアル化:グリッドの状態を保存および読み込む
  • コンテンツに合わせて行と列を自動調整する

クイックスタートの例

   1. Add assemblies: 
      Syncfusion.Grid.Wpf
      Syncfusion.GridCommon.Wpf,
      Syncfusion.Linq.Base, 
      Syncfusion.Shared.Wpf

  // 2. XAML — place GridControl inside a ScrollViewer
<ScrollViewer>
     <syncfusion:GridControl x:Name="gridControl" />
</ScrollViewer>

// 3. Code-behind: set size and populate
gridControl.Model.RowCount = 100;
gridControl.Model.ColumnCount = 10;

// Option A — direct assignment
for (int i = 0; i < 100; i++)
    for (int j = 0; j < 10; j++)
        gridControl.Model[i, j].CellValue = $"{i}/{j}";

// Option B — virtual mode (preferred for large data)
gridControl.QueryCellInfo += (s, e) =>
{
    if (e.Cell.RowIndex > 0 && e.Cell.ColumnIndex > 0)
        e.Style.CellValue = $"{e.Cell.RowIndex}/{e.Cell.ColumnIndex}";
};

よく使われるパターン

範囲にセル型を適用する
// Set an entire column to CheckBox
for (int i = 1; i <= gridControl.Model.RowCount; i++)
    gridControl.Model[i, 3].CellType = "CheckBox";
PrepareRenderCell で行の色を交互に設定する
gridControl.PrepareRenderCell += (s, e) =>
{
    if (e.Cell.RowIndex > 0 && e.Cell.RowIndex % 2 == 0)
        e.Style.Background = Brushes.LightSkyBlue;
};
ヘッダーを固定して数式セルを有効にする
gridControl.Model.FrozenRows = 1;
gridControl.Model.HeaderRows = 1;
gridControl.BaseStylesMap["Standard"].StyleInfo.CellType = "FormulaCell";
Excel にエクスポートする
gridControl.Model.ExportToExcel(@"Output.xlsx", ExcelVersion.Excel2007);

主なスタイルプロパティ

プロパティ用途
Model[r, c].CellType組み込みまたはカスタムのセル型文字列を設定します
Model[r, c].CellValueセルに格納されるデータ値です
Model[r, c].Backgroundセルの背景ブラシです
Model[r, c].Foregroundセルのテキスト色です
Model[r, c].Font.FontSizeセルのフォントサイズです
Model[r, c].Borders個別の境界線ペン(Top/Bottom/Left/Right)です
Model[r, c].Format書式文字列(例:"C"、"0.00"、"d")です
Model.RowHeights[r]デバイス非依存単位での行の高さです
Model.ColumnWidths[c]列の幅です
Model.FrozenRows上部で固定する行数です
Model.FrozenColumns左側で固定する列数です

コメント