Avalonia 12 で動く Avalonia ピボットグリッド

sgcPivotGrid は、Avalonia アプリケーションに本物のピボットテーブルをもたらします。ピボットグリッド、ドラッグ&ドロップのフィールドリスト、ピボットチャートを、Windows、Linux、macOS 上のネイティブな Avalonia 12 コントロールとして提供します。XAML でビューモデルにバインドし、ユーザーが行、列、フィルター、値の間でフィールドをドラッグできるようにし、結果を Excel にエクスポートできます。内部に WPF ランタイムはなく、インストールが必要な OLAP サーバーもありません。

Avalonia のために作られたピボットテーブル

.NET デスクトップアプリ向けのピボットグリッドは、たいてい WinForms や WPF のスイートから提供されます。Avalonia では、選択肢は多くありません。

エミュレーションではなくネイティブ

TsgcAvaloniaPivotGrid と TsgcAvaloniaPivotFieldList は esegece.sgcPivotGrid.Avalonia パッケージに含まれます。sgcUICore の Avalonia コントロール基盤の上に構築され、SkiaSharp で描画されるため、Avalonia 12 がデスクトップで動作する環境ならどこでも動きます。パッケージの下限は Avalonia 12.0 で、テストとデモは 12.1.4 で動作します。

OLAP スタックの代替

エンジンは、すでにメモリ上にある行をピボットします。すべての列を型付きのカラムストアに保持し、元の行を 1 回走査するだけで集計し、結果のうち見えている部分だけを描画します。合計は元の値から求められ、平均の平均になることはありません。

ユーザーがピボットテーブルに期待するすべて

Registered と記した機能は、無償の Community パッケージには含まれません。それ以外の機能はすべてのエディションに含まれます。

機能 Avalonia ピボットグリッドでは エディション
ドラッグ&ドロップのフィールドリスト行、列、フィルター、値のゾーンを持つ TsgcAvaloniaPivotFieldList、DeferUpdate と ApplyChanges、検索付きのメンバーポップアップ、日付フィールド用のグループ化メニュー (なし、年、四半期、月、週、日)すべてのエディション
集計合計、個数、平均、最小、最大、重複を除いた個数、標準偏差、分散 (pvfSum から pvfVar)。小計と総計付きすべてのエディション
日付のグループ化pvdYear、pvdQuarter、pvdMonth、pvdWeek、pvdDay を使う DateGrouping。フィールドごとに 1 レベルすべてのエディション
フィルターと並べ替えメンバー、ラベル、値のフィルター、ラベルまたは値による並べ替えすべてのエディション
Top Nフィールドの TopN と TopNOthers。上位のアイテムを残し、残りを「その他」に合計しますRegistered
値の表示形式ShowAs: 行、列、総計に対する割合、累計、差分、順位Registered
計算フィールドと計算アイテムエンジンの CalculatedFields、および East+West のような兄弟アイテムに対する数式のためのフィールドの CalculatedItems。合計は元の行に基づいたままですRegistered
非同期計算AsyncCalculation、CancellationToken を受け取り Task<bool> を返す RecalculateAsync、CancelCalculation。ウィンドウは応答し続けますRegistered
条件付き書式とドリルダウンカラースケール用の FormatRules、セルの元になった行を取得する OnGetCellStyle、OnGetCellText、OnDrillDownすべてのエディション
エクスポートSaveToCSV、SaveToHTML、SaveToJSON、SaveToPNG、SaveToSVGすべてのエディション
Excel エクスポートSaveToXLSX は外部ライブラリなしで本物のブックを書き出します。結合ヘッダー、アウトライン、固定ヘッダー、数値書式、右から左のシートに対応Registered
ピボットチャートTsgcPivotChartTable が TsgcAvaloniaChart 上の sgcCharts の TsgcChartTableLink にデータを渡し、Layout = pvlBar のフィールドリストはチャートの上にフィールドボタンを置き、チャートデザイナーは ShowDesignerAsync で開きますRegistered の sgcPivotGrid と sgcCharts
ピボットに質問するTsgcPivotGridAI は、TsgcAvaloniaAIQueryBar と任意の TsgcUIAIProvider を通じて、自然言語の質問をピボットレイアウトに変換します。送信されるのはフィールドカタログ (名前、キャプション、型、いくつかのサンプル値) だけで、行は送信されませんすべてのエディション。元に戻すは Registered
保存済みレイアウトSaveLayoutToString、LoadLayoutFromString、SaveLayoutToFile、LoadLayoutFromFile。ピボットレイアウト JSON のチャート設定は Delphi とバイト単位で互換Registered
印刷と PDFPrint、ShowPrintPreview、ExportToPDF。ヘッダーは全ページに付き、PDF はピボットが本物の表になるタグ付き PDF/UA 文書ですすべてのエディション
テーマライト、ダーク、ハイコントラストのテーマと Fluent プリセット。Fluent では、FluentTheme を使う Avalonia 12 がコントロールの背景、枠線、テキスト、塗りを与えますすべてのエディション
右から左の表示とアクセシビリティAvalonia がすでに持つ方向に従う右から左のレイアウトと、既定で有効な UI Automationすべてのエディション
言語12 言語分の組み込み言語パックによるエンドユーザー向けテキスト。sgcUILang.SetLanguage で切り替えますすべてのエディション

XLSX エクスポート、計算アイテム、非同期計算、ピボットチャート、12 の言語パックは、sgcUI .NET の履歴にバージョン 2026.11.0 として記載されています。機能の詳しい紹介は sgcPivotGrid の製品ページをご覧ください。

Avalonia XAML のピボットグリッド

2 つのファイルは、net8.0 上のコンパイル済みバインディングと FluentTheme を使うサンプルの Avalonia 12.1.4 アプリからコピーしたものです。sgcPivotGrid の Avalonia ソースに対して Release でビルドし、エラー 0、警告 0 でした。RecalculateAsync と SaveToXLSX には Registered エディションとバージョン 2026.11 が必要です。

ビュー: グリッド、フィールド、フィールドリスト

1 つの sgc プレフィックスで、すべての sgcUI コントロールをマップします。フィールドはグリッドの内容で、ItemsSource が行をバインドし、フィールドリストは PivotGrid を通じてグリッドに追従します。

MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sgc="https://www.esegece.com/sgcui"
        xmlns:vm="using:PivotDemo"
        x:Class="PivotDemo.MainWindow"
        x:DataType="vm:TSalesViewModel"
        Title="Avalonia pivot grid" Width="1100" Height="640">
  <Grid ColumnDefinitions="*,260">
    <sgc:TsgcAvaloniaPivotGrid x:Name="pivot" ItemsSource="{Binding Sales}" AlternateRows="True">
      <sgc:TsgcAvaloniaPivotField FieldName="Region" Area="pvaRow" Caption="Region"/>
      <sgc:TsgcAvaloniaPivotField FieldName="Date" Area="pvaColumn" DateGrouping="pvdYear" Caption="Year"/>
      <sgc:TsgcAvaloniaPivotField FieldName="Date" Area="pvaColumn" DateGrouping="pvdQuarter" Caption="Quarter"/>
      <sgc:TsgcAvaloniaPivotField FieldName="Amount" Area="pvaData" Aggregation="pvfSum"
                                  DisplayFormat="#,##0.00" Caption="Sales"/>
    </sgc:TsgcAvaloniaPivotGrid>
    <sgc:TsgcAvaloniaPivotFieldList Grid.Column="1" Margin="8,0,0,0" PivotGrid="{Binding #pivot}"/>
  </Grid>
</Window>

ビューモデルとコードビハインド

単純なオブジェクトの ObservableCollection があれば十分です。すべてのパブリックメンバーがピボットの列になり、コレクションが変更されると 100 ms 後にピボットが再読み込みされます。

MainWindow.axaml.cs
using System;
using System.Collections.ObjectModel;
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Controls;

namespace PivotDemo
{
    public sealed class TSale
    {
        public string Region { get; set; }
        public DateTime Date { get; set; }
        public double Amount { get; set; }
    }

    public sealed class TSalesViewModel
    {
        public ObservableCollection<TSale> Sales { get; } = new ObservableCollection<TSale>();
    }

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            TSalesViewModel oModel = new TSalesViewModel();
            oModel.Sales.Add(new TSale { Region = "North", Date = new DateTime(2026, 2, 3), Amount = 1250 });
            oModel.Sales.Add(new TSale { Region = "South", Date = new DateTime(2026, 5, 18), Amount = 980 });
            DataContext = oModel;
        }

        // Registered edition: recalculate on a worker thread, then save an Excel workbook
        private async Task DoExportAsync(CancellationToken aToken)
        {
            if (await pivot.Pivot.RecalculateAsync(aToken))
                pivot.SaveToXLSX("sales.xlsx", "Sales");
        }
    }
}

アプリの残りは標準の Avalonia デスクトップテンプレートです。Avalonia.Desktop と Avalonia.Themes.Fluent、App.axaml の <FluentTheme/>、そして esegece.sgcPivotGrid.Avalonia パッケージ (無償エディションなら esegece.sgcPivotGrid.Avalonia.Community) です。ヘルプの Avalonia クイックスタートでは、BeginLoad、DefineColumn、AppendRow、EndLoad を使って同じピボットをコードで構築します。

1 つのピボットエンジンで、あらゆるデスクトップに

Avalonia ピボットグリッドは、エンジン、フィールド、レイアウト形式を WinForms、WPF、VCL、FireMonkey 版と共有します。

ターゲット コントロール プラットフォーム
Avalonia 12、net8.0、net9.0、net10.0TsgcAvaloniaPivotGrid、TsgcAvaloniaPivotFieldListWindows、Linux、macOS
.NET Framework 4.7.2、.NET 8、9、10TsgcWinFormsPivotGrid、TsgcWpfPivotGridWindows 上の WinForms と WPF
Delphi 7 から 13、VCLTsgcVCLPivotGridWin32 と Win64
Delphi XE6 から 13、FireMonkeyTsgcFMXPivotGridWindows、macOS、iOS、Android
C++ Builder 2007 から 13VCL と FMX のピボットグリッド生成された .hpp ヘッダーと静的ライブラリ

無償で始められ、購入すれば完全なソースコード付き

価格は sgcUI の価格ページをご覧ください。

Community

NuGet 上の esegece.sgcPivotGrid.Avalonia.Community は、年間総売上が EUR 1,000,000 未満で開発者が 5 人以下の個人または組織であれば、商用・非商用のプロジェクトで無償です。グリッド、フィールドリスト、集計、日付のグループ化、フィルター、カラースケール、CSV、HTML、JSON、PNG、SVG のエクスポート、印刷、PDF を含みます。

sgcPivotGrid .NET

単体パッケージで、開発者ごとに €249、完全な C# ソースコードと 1 年間の更新付きです。WinForms、WPF、Avalonia 向けに、その他を含む Top N、値の表示形式、計算フィールドと計算アイテム、保存済みレイアウト、XLSX エクスポート、非同期計算、ピボットチャートが加わります。

sgcUI .NET Enterprise

sgcPivotGrid を含む .NET 向けのすべての sgcUI 製品が、開発者ごとに €699 から。ピボットチャートには sgcCharts も必要で、これも Enterprise に含まれます。

Avalonia でのピボット: 各手段の比較

2026-10-20 に、表にリンクしたページから確認した内容です。

  Avalonia XPF 上の WPF スイートのピボット Avalonia Pro sgcPivotGrid
ピボットグリッドXPF が実行する WPF コントロール。XPF は「バイナリ互換の WPF ランタイム」Avalonia Pro のページには記載なしフィールドリスト付きのネイティブな Avalonia 12 コントロール
ライセンスアプリケーションごとの XPF: Internal EUR 9,500、Business EUR 29,500、Enterprise は EUR 124,500 から1 シートあたり年 EUR 899 (税別)開発者ごとに €249 から。アプリケーションごとの料金なし、バイナリの再配布は無償
条件XPF のサードパーティに関する注記によると、Win32 API のシムは「DevExpress コントロールに必要」で、「問題は GDI や WinForms コンポーネントを使うコントロールで最も多く発生する」とのこと Avalonia パッケージが参照するのは Avalonia、Avalonia.Skia、SkiaSharp で、WPF や WinForms ではありません
ソースコード プレミアムコントロールの完全なソースは Enterprise に含まれますすべての Registered エディションに完全な C# ソースコードを含みます

XPF は、既存の WPF アプリケーションを、コードとコントロールをほぼそのままに macOS と Linux で動かすことを目指していますが、sgcPivotGrid はそれを行いません。Avalonia のビューに追加して使います。WPF や WinForms のアプリを移行する場合は WinForms と WPF から Avalonia へをお読みください。Avalonia Pro をお使いの場合は Avalonia Pro にないコントロールをお読みください。sgcPivotGrid は Avalonia Pro のコントロールと並んで動作します。

1 行も書く前に動かしてみる

sgcPivotGrid の .NET デモには、.NET SDK 8.0 以降で Windows、Linux、macOS 上で動作する 2 つの Avalonia アプリが含まれています。

SalesPivotAvalonia

生成された 100,000 行の売上データに、フィールドリスト、年・四半期・月の列、値による並べ替え、カラースケール、CSV・HTML・PNG のエクスポート、AI クエリバーを組み合わせています。dotnet run で起動し、dotnet run -- --test result.txt で画面を使わずにセルフチェックを実行します。

PivotChartAvalonia

Excel のようなピボットチャートです。TsgcAvaloniaChart 上の TsgcAvaloniaPivotGrid、TsgcPivotChartTable、TsgcChartTableLink、チャートの上のフィールドボタン、チャートデザイナー、ピボットレイアウトに保存されるチャート設定を備えます。ピボットチャートは Registered 専用です。

すぐに動く実行ファイルがよろしいですか。すべての sgcUI 製品のコンパイル済みデモは、何もインストールせずに動作します。

よくある質問

はい。TsgcAvaloniaPivotGrid と TsgcAvaloniaPivotFieldList は、esegece.sgcPivotGrid.Avalonia パッケージに含まれる Avalonia コントロールで、sgcUICore の Avalonia コントロール基盤の上に構築され、SkiaSharp で描画されます。このパッケージは Avalonia 12 を対象としています (パッケージの下限は 12.0、12.1.4 でテスト済み)。WPF レイヤーも XPF ランタイムもありません。

Avalonia 12 を通じて Windows、Linux、macOS に対応し、ターゲットフレームワークは net8.0、net9.0、net10.0 です。同じ製品には、.NET Framework 4.7.2 と .NET 8、9、10 向けの WinForms および WPF ピボットグリッドと、Delphi および C++ Builder 向けの VCL および FireMonkey ピボットグリッドもあります。

ItemsSource をビューモデルの任意の IEnumerable (たとえば ObservableCollection、List、DataView) にバインドし、フィールドを XAML で FieldName、Area、Aggregation を持つ TsgcAvaloniaPivotField 要素として宣言します。アイテムの各メンバーがピボットの列になります。コレクションの以降の変更は、100 ms の枠ごとに 1 回ピボットを再読み込みします。System.Data.DataTable も TsgcPivotSource_DataSet を通じて読み込めます。

Community パッケージ esegece.sgcPivotGrid.Avalonia.Community には、グリッド、ドラッグ&ドロップのフィールドリスト、8 種類の集計、日付のグループ化、メンバー・ラベル・値のフィルター、並べ替え、カラースケール、CSV、HTML、JSON、PNG、SVG のエクスポート、プレビュー付き印刷、PDF エクスポート、アクセシビリティ、AI レイアウトが含まれます。その他を含む Top N、値の表示形式、計算フィールドと計算アイテム、保存済みレイアウト、XLSX エクスポート、非同期計算、ピボットチャート、AI レイアウトの元に戻すには Registered エディションが必要です。

はい。レイアウトは SaveLayoutToString または SaveLayoutToFile で JSON として保存され、ピボットレイアウト JSON に保存されるチャート設定は Delphi とバイト単位で互換性があります。保存済みレイアウトは Registered エディションに含まれます。

最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

Avalonia アプリにピボットテーブルを追加しましょう

NuGet の無償 Community パッケージから始めるか、すべての機能と完全な C# ソースコードを備えた Registered エディションを選び、SalesPivotAvalonia デモをアプリと並べて動かしてください。