syncfusion-winforms-pivot-grid について
Syncfusion Windows Forms Pivot Gridは、Windows Formsアプリ向けのデータ分析コントロールです。複数のデータソースを使った対話型のピボット配置、計算、フィルタリング、エクスポートに対応します。
主な機能
- 01ドラッグ&ドロップによるフィールド配置
- 02階層データのドリルダウンとドリルアップ
- 03標準集計とカスタム計算
- 04フィルタリング、並べ替え、条件付き書式
- 05Excel、PDF、Wordへのエクスポート
活用シーン
- 01製品、地域、期間別の売上分析
- 02予算と実績の財務比較
- 03場所やカテゴリ別の在庫確認
- 04ドリルダウン対応のKPIレポート作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-pivot-gridインストール後、Claude Code で/syncfusion-winforms-pivot-gridを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced-features.mdcalculations-editing.mdcell-selection-formatting.mddata-binding.mddata-exploration.mdexporting-printing.mdfiltering-sorting.mdgetting-started.mdgrouping-layouts.mdpivot-schema-designer.mdrows-columns-summaries.md詳細
Syncfusion Windows Forms Pivot Grid
Syncfusion Windows Forms Pivot Grid コントロールは、インタラクティブなデータ分析とクロス集計レポートを可能にする、強力な Excel のようなピボットテーブルコンポーネントです。ドラッグ&ドロップによるフィールドの整理、ドリルダウンナビゲーション、高度な計算機能により、大規模なデータセットを意味のある要約に変換します。
このスキルを使用する場面
次のような場合に、このスキルを使用します。
- Windows Forms アプリケーションにピボットテーブル機能を実装する
- データの集計機能を備えたビジネスインテリジェンスダッシュボードを構築する
- 階層的なグループ化と計算機能を備えた分析レポートを作成する
- ドリルダウン/ドリルアップナビゲーションによるインタラクティブなデータ探索を提供する
- リレーショナルデータソースまたは OLAP データソースのクロス集計データを表示する
- ユーザーがデータフィールドを動的に再編成できるようにする
- ピボット分析を Excel、PDF、Word 形式にエクスポートする
- セルの値に基づいて条件付き書式を適用する
- カスタム集計と計算フィールドを実装する
- 財務レポート、売上ダッシュボード、KPI 追跡インターフェイスを構築する
コンポーネントの概要
主な機能:
- Excel のようなピボットテーブル - ピボット操作と分析に使い慣れたインターフェイス
- インタラクティブなスキーマデザイナー - ドラッグ&ドロップでフィールドを管理できる、組み込みのピボットテーブルフィールドリスト
- 複数のデータソース - IList、IEnumerable、DataTable、DataView、OLAP をサポート
- ドリルダウンナビゲーション - 階層データをインタラクティブに展開/折りたたみ
- 高度な計算 - 合計、平均、件数、最小値、最大値、カスタム式、累計
- フィルタリングと並べ替え - ラベルフィルター、値フィルター、複数レベルの並べ替え
- グループ化バー - ドラッグ&ドロップによる視覚的なフィールド整理
- 条件付き書式 - ルールと条件に基づくセルのスタイル設定
- エクスポート機能 - 書式を保持したまま Excel、PDF、Word にエクスポート
- セル選択 - 単一選択、複数選択、範囲選択モード
- 編集のサポート - セルの値を変更し、集計を更新
- タッチ操作のサポート - タブレットデバイスに適したタッチ操作
名前空間: Syncfusion.Windows.Forms.PivotAnalysis
アセンブリの依存関係:
Syncfusion.Grid.Windows.dllSyncfusion.PivotAnalysis.Base.dllSyncfusion.PivotAnalysis.Windows.dllSyncfusion.Shared.Base.dll
NuGet に関するガイダンス:
- 入手可能な最新バージョンの Syncfusion.PivotTable.WinForms をインストールします
Install-Package Syncfusion.PivotTable.WinForms -Version *
- 可能な場合は、手動で DLL を参照する代わりに NuGet パッケージ参照を使用します
- アップグレードする前に、パッケージがプロジェクトのターゲットフレームワークと互換性があることを確認します
重要な UI セットアップに関する注意:
- Windows Forms フォーム内で使用する場合は、必ず
new PivotGridControl(this.components);でコントロールを作成してください。 - 必ず最初に
LocationとSizeを設定し、ShowPivotTableFieldListを有効にする前に、コントロールのサイズが 300 x 300 より大きいことを確認してください。 - コントロールのサイズを適切に設定してから、
ShowPivotTableFieldList = trueを設定してください。 - これにより、小さなコントロール上でフィールドリストの UI が使用できないレイアウトで表示されるのを防げます。
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- アセンブリの配置と必要な依存関係
- Visual Studio デザイナーから Pivot Grid を追加する
- コードビハインドから Pivot Grid を追加する
- ライセンスキーの登録
- コントロールの基本的な初期化
- 初期設定とセットアップ
データ管理
📄 参照: references/data-binding.md
- IEnumerable コレクション(List、ObservableCollection)へのバインド
- DataTable と DataView へのバインド
- OLAP データソースへのバインド
- 動的なデータ更新とリフレッシュ
- データソースの要件とベストプラクティス
- 大規模なデータセットのパフォーマンス最適化
ピボットスキーマデザイナー
📄 参照: references/pivot-schema-designer.md
- ピボットテーブルフィールドリストを有効にする
- ドラッグ&ドロップによるフィールドの整理
- フィールドの設定とカスタマイズ
- スキーマデザイナーの表示/非表示
- プログラムによるフィールド操作
- カスタムフィールドテンプレート
行、列、集計
📄 読む: references/rows-columns-summaries.md
- ピボット行の設定(PivotRows コレクション)
- ピボット列の設定(PivotColumns コレクション)
- 集計の種類(Sum、Average、Count、Min、Max など)
- カスタム集計関数
- 計算情報と書式設定
- 階層構造とネスト
- 合計ヘッダーと小計
フィルタリングと並べ替え
📄 読む: references/filtering-sorting.md
- フィルターの種類(ラベルフィルター、値フィルター)
- UI を使ったインタラクティブなフィルタリング
- プログラムによるフィルター設定
- フィルター条件と述語
- 並べ替えモード(昇順、降順、カスタム)
- 複数レベルの並べ替え方法
- フィルターのクリアとリセット
グループ化とレイアウト
📄 読む: references/grouping-layouts.md
- グループ化バーの機能と表示設定
- レイアウトの種類(標準、上部に集計、集計なしなど)
- 詳細表示と上位表示のナビゲーション
- 展開/折りたたみの動作とイベント
- カスタムレイアウト設定
- グループ化されたデータのパフォーマンス最適化
計算と編集
📄 読む: references/calculations-editing.md
- ピボット計算(差分、割合、累計など)
- 式フィールドとカスタム数式の作成
- セル値のインタラクティブな編集
- 集計値のプログラムによる更新
- 検証ルールと制約
- 計算フィールドとカスタム集計
セルの選択と書式設定
📄 読む: references/cell-selection-formatting.md
- セルの選択モード(単一、範囲、複数)
- 選択イベントと処理
- 条件付き書式のルールと条件
- セル値に基づく書式条件
- セル、行、列のスタイル設定
- カスタムセルの外観とテンプレート
データの探索
📄 読む: references/data-exploration.md
- ナビゲーション用のハイパーリンクセル
- 詳細を表示するドリルスルー機能
- データの可視化手法
- インタラクティブなナビゲーションパターン
- ユーザー操作イベント
- ツールチップとセル値の表示
エクスポートと印刷
📄 読む: references/exporting-printing.md
- Excel(XLS、XLSX)へのエクスポート
- 書式設定を含む PDF へのエクスポート
- Word ドキュメントへのエクスポート
- 印刷設定とプレビュー
- カスタムエクスポートオプションとテンプレート
- 大規模なエクスポートの効率的な処理
高度な機能
📄 読む: references/advanced-features.md
- 大規模なデータセットの非同期データ処理
- ピボット状態のシリアル化とデシリアル化
- 行/列ヘッダーの固定
- タブレットデバイスのタッチ操作対応
クイックスタートの例
データバインディングを使った基本的なピボットグリッド
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Syncfusion.Windows.Forms.PivotAnalysis;
using Syncfusion.PivotAnalysis.Base;
using Syncfusion.Windows.Forms;
namespace PivotGridDemo
{
public partial class MainForm : Form
{
private PivotGridControl pivotGridControl1;
public MainForm()
{
InitializeComponent();
InitializePivotGrid();
}
private void InitializePivotGrid()
{
// Create pivot grid instance using the form components container
pivotGridControl1 = new PivotGridControl(this.components);
// Set size and position first
pivotGridControl1.Location = new System.Drawing.Point(10, 10);
pivotGridControl1.Size = new System.Drawing.Size(800, 500);
pivotGridControl1.Anchor = AnchorStyles.Top | AnchorStyles.Left |
AnchorStyles.Right | AnchorStyles.Bottom;
// Apply visual style
pivotGridControl1.GridVisualStyles = GridVisualStyles.Metro;
// Bind data source
pivotGridControl1.ItemSource = GetSalesData();
// Configure pivot rows
pivotGridControl1.PivotRows.Add(new PivotItem
{
FieldMappingName = "Product",
TotalHeader = "Total"
});
pivotGridControl1.PivotRows.Add(new PivotItem
{
FieldMappingName = "Date",
TotalHeader = "Total"
});
// Configure pivot columns
pivotGridControl1.PivotColumns.Add(new PivotItem
{
FieldMappingName = "Country",
TotalHeader = "Total"
});
// Configure calculations (summary values)
pivotGridControl1.PivotCalculations.Add(new PivotComputationInfo
{
FieldName = "Amount",
Format = "C", // Currency format
SummaryType = SummaryType.DoubleTotalSum
});
pivotGridControl1.PivotCalculations.Add(new PivotComputationInfo
{
FieldName = "Quantity",
Format = "#,##0"
});
// Enable the field list only after the control has been sized correctly
pivotGridControl1.ShowPivotTableFieldList = true;
// Add to form
this.Controls.Add(pivotGridControl1);
}
private List<ProductSales> GetSalesData()
{
// Sample data for demonstration
return new List<ProductSales>
{
new ProductSales
{
Product = "Bike",
Date = "FY 2023",
Country = "United States",
Quantity = 120,
Amount = 24000
},
new ProductSales
{
Product = "Car",
Date = "FY 2023",
Country = "Canada",
Quantity = 45,
Amount = 135000
},
// Add more data...
};
}
}
public class ProductSales
{
public string Product { get; set; }
public string Date { get; set; }
public string Country { get; set; }
public int Quantity { get; set; }
public double Amount { get; set; }
}
}
よくあるパターン
パターン 1:ピボットスキーマデザイナーを有効にする
using Syncfusion.Windows.Forms.PivotAnalysis;
// Show the Pivot Table Field List (schema designer)
pivotGridControl1.ShowPivotTableFieldList = true;
// Users can now drag and drop fields to reorganize the pivot structure
// This provides Excel-like field management functionality
パターン 2:条件付き書式を適用する
using Syncfusion.Windows.Forms.PivotAnalysis;
// Add conditional formatting rule
NewRuleConditionalFormat newRule1 = new NewRuleConditionalFormat();
newRule1.RuleType = RuleType.FormatOnlyCellsThatContain;
newRule1.SummaryElement = "Quantity";
ConditionalFormat condition1 = new ConditionalFormat();
condition1.PredicateType = PredicateType.And;
condition1.ConditionType = PivotGridDataConditionType.LessThan;
condition1.StartValue = 30;
condition1.EndValue = 60;
newRule1.Conditions.Add(condition1);
パターン 3:Excel にエクスポートする
using Syncfusion.Windows.Forms.PivotAnalysis;
// Export pivot grid to Excel file
pivotGridControl1.ExportToExcel("PivotReport.xlsx");
// Export with options
ExcelExport excelExport = new ExcelExport(this.pivotGridControl1, Syncfusion.XlsIO.ExcelVersion.Excel2010);
excelExport.ExportMode = ExportModes.Cell;
excelExport.Export(@"D:\PivotGrid.xlsx");
パターン 4:プログラムによるフィルタリング
using Syncfusion.Windows.Forms.PivotAnalysis;
using Syncfusion.PivotAnalysis.Base;
// Add filter to a specific field
PivotItem productRow = pivotGridControl1.PivotRows[0];
productRow.FilterItems = new List<string> { "Bike", "Car" };
// Or use filter expressions
FilterExpression filter = new FilterExpression();
filter.FieldName = "Product";
filter.FilterItems.Add("Bike");
filter.FilterItems.Add("Car");
pivotGridControl1.Filters.Add(filter);
// Refresh the pivot grid to apply filters
pivotGridControl1.TableControl.Refresh();
パターン 5:カスタム集計
using Syncfusion.PivotAnalysis.Base;
// Create custom calculation with expression
PivotComputationInfo customCalc = new PivotComputationInfo
{
FieldName = "Profit",
CalculationType = CalculationType.Formula,
Format = "C",
SummaryType = SummaryType.Custom
};
// Define custom summary calculation
customCalc.CustomSummaryMethod = (items) =>
{
double total = 0;
foreach (var item in items)
{
total += (double)item.GetType().GetProperty("Amount").GetValue(item, null);
}
return total * 0.15; // Calculate 15% profit margin
};
pivotGridControl1.PivotCalculations.Add(customCalc);
一般的なユースケース
-
売上分析ダッシュボード
- 商品、地域、期間別に売上を追跡します
- 複数の切り口でパフォーマンスを比較します
- 売上データの傾向やパターンを特定します
-
財務レポート
- 予算と実績の分析
- 経費の追跡と分類
- 部門/商品別の収益内訳
-
在庫管理
- 拠点および商品カテゴリ別の在庫数
- 在庫移動の分析と回転率
- 発注点の計算
-
ビジネスインテリジェンス
- ドリルダウン機能を備えた KPI ダッシュボード
- 部門横断的なデータ分析
- 経営層向けサマリーレポート
-
顧客分析
- 顧客のセグメンテーションとプロファイリング
- 購買パターンの分析
- 顧客維持率と解約率の指標
-
運用レポート
- 生産効率の追跡
- リソース利用状況の分析
- 品質指標と不良の追跡
主なプロパティと設定
必須プロパティ:
ItemSource- ピボットグリッドのデータソース(IEnumerable、DataTable など)PivotRows- 行ヘッダーとして表示するフィールドのコレクションPivotColumns- 列ヘッダーとして表示するフィールドのコレクションPivotCalculations- 集計計算(Sum、Average、Count など)ShowPivotTableFieldList- スキーマデザイナーの有効/無効を切り替えますGridVisualStyles- ビジュアルテーマ(Metro、Office2016 など)を適用します
カスタマイズプロパティ:
EnableDrillDown- グループ化されたデータの展開/折りたたみをユーザーに許可しますShowGrandTotals- 総計の行と列を表示しますShowSubTotals- 小計の行と列を表示しますAllowSelection- セル選択を有効にしますAllowFiltering- フィルタリング UI を有効にしますAllowSorting- 並べ替え機能を有効にします
すべてのプロパティ、メソッド、イベントの詳細については、上記のリファレンスファイルを参照してください。