Avalonia Pivot Grid, który działa na Avalonia 12

sgcPivotGrid daje Twojej aplikacji Avalonia prawdziwą tabelę przestawną: siatkę przestawną, listę pól z przeciąganiem i wykresy przestawne, jako natywne kontrolki Avalonia 12 w systemach Windows, Linux i macOS. Powiąż ją z view modelem w XAML, pozwól użytkownikom przeciągać pola między wierszami, kolumnami, filtrami i wartościami, a wynik wyeksportuj do Excela. Pod spodem nie ma środowiska WPF ani serwera OLAP do zainstalowania.

Tabela przestawna stworzona dla Avalonia

Siatki przestawne dla desktopowych aplikacji .NET zwykle pochodzą z pakietów WinForms i WPF. W Avalonia wybór jest niewielki.

Natywna, nie emulowana

TsgcAvaloniaPivotGrid i TsgcAvaloniaPivotFieldList znajdują się w pakiecie esegece.sgcPivotGrid.Avalonia. Są zbudowane na bazie kontrolek Avalonia z sgcUICore i rysowane przez SkiaSharp, więc działają wszędzie tam, gdzie Avalonia 12 działa na pulpicie. Minimalna wersja pakietu to Avalonia 12.0, a testy i dema działają na 12.1.4.

Alternatywa dla stosu OLAP

Silnik przestawia wiersze, które już masz w pamięci. Trzyma każdą kolumnę w typowanym magazynie kolumnowym, agreguje w jednym przebiegu po wierszach źródłowych i rysuje tylko widoczną część wyniku. Sumy pochodzą z wartości źródłowych, nigdy ze średnich ze średnich.

Wszystko, czego użytkownicy oczekują od tabeli przestawnej

Funkcje oznaczone jako Registered nie są w bezpłatnym pakiecie Community. Każda inna funkcja jest w każdej edycji.

Funkcja W siatce przestawnej Avalonia Edycja
Lista pól z przeciąganiemTsgcAvaloniaPivotFieldList ze strefami Wiersze, Kolumny, Filtry i Wartości, DeferUpdate i ApplyChanges, okno elementów z wyszukiwaniem oraz menu Grupuj według (Brak, Rok, Kwartał, Miesiąc, Tydzień, Dzień) dla pól datkażda edycja
AgregacjeSuma, Liczba, Średnia, Min, Max, liczba unikatowych, odchylenie standardowe i wariancja (pvfSum do pvfVar), z sumami częściowymi i sumami końcowymikażda edycja
Grupowanie datDateGrouping z pvdYear, pvdQuarter, pvdMonth, pvdWeek i pvdDay, jeden poziom na polekażda edycja
Filtry i sortowaniefiltry elementów, etykiet i wartości, sortowanie według etykiety lub wartościkażda edycja
Top NTopN i TopNOthers na polu: zachowaj najwyższe elementy, a resztę zsumuj w InneRegistered
Pokaż wartości jakoShowAs: procent wiersza, kolumny lub sumy końcowej, suma narastająca, różnica względem i rangaRegistered
Pola i elementy obliczenioweCalculatedFields w silniku oraz CalculatedItems w polu dla formuł na sąsiednich elementach, takich jak East+West; sumy nadal opierają się na wierszach źródłowychRegistered
Obliczenia asynchroniczneAsyncCalculation, RecalculateAsync zwracające Task<bool> z CancellationToken oraz CancelCalculation, dzięki czemu okno pozostaje responsywneRegistered
Formatowanie warunkowe i drill downFormatRules dla skal kolorów, OnGetCellStyle, OnGetCellText i OnDrillDown dla wierszy kryjących się za komórkąkażda edycja
EksportSaveToCSV, SaveToHTML, SaveToJSON, SaveToPNG i SaveToSVGkażda edycja
Eksport do ExcelaSaveToXLSX zapisuje prawdziwy skoroszyt bez zewnętrznej biblioteki: scalone nagłówki, konspekt, zablokowany nagłówek, formaty liczb i arkusze od prawej do lewejRegistered
Wykresy przestawneTsgcPivotChartTable zasila TsgcChartTableLink z sgcCharts na TsgcAvaloniaChart, lista pól z Layout = pvlBar umieszcza przyciski pól nad wykresem, a projektant wykresów otwiera się przez ShowDesignerAsyncRegistered sgcPivotGrid i sgcCharts
Zapytaj tabelęTsgcPivotGridAI zamienia pytanie w języku naturalnym na układ tabeli przestawnej przez dowolny TsgcUIAIProvider, z użyciem TsgcAvaloniaAIQueryBar. Wysyłany jest tylko katalog pól (nazwy, podpisy, typy i kilka przykładowych wartości), nigdy wierszekażda edycja; Undo jest w Registered
Zapisane układySaveLayoutToString, LoadLayoutFromString, SaveLayoutToFile i LoadLayoutFromFile; ustawienia wykresu w JSON układu tabeli są zgodne bajt w bajt z DelphiRegistered
Drukowanie i PDFPrint, ShowPrintPreview i ExportToPDF, z nagłówkami na każdej stronie; PDF jest otagowanym dokumentem PDF/UA, w którym tabela przestawna staje się prawdziwą tabeląkażda edycja
Motywymotywy jasny, ciemny i wysokiego kontrastu oraz ustawienie Fluent; pod Fluent Avalonia 12 z FluentTheme nadaje kontrolkom tła, obramowania, teksty i wypełnieniakażda edycja
Od prawej do lewej i dostępnośćukłady od prawej do lewej sterowane kierunkiem, który Avalonia już ma, oraz UI Automation włączone domyślniekażda edycja
Językiteksty dla użytkownika końcowego z wbudowanych pakietów językowych dla 12 języków, przełączane przez sgcUILang.SetLanguagekażda edycja

Eksport XLSX, elementy obliczeniowe, obliczenia asynchroniczne, wykresy przestawne i 12 pakietów językowych są wymienione w historii sgcUI .NET dla wersji 2026.11.0. Pełny przegląd funkcji znajdziesz na stronie produktu sgcPivotGrid.

Siatka przestawna w XAML Avalonia

Oba pliki skopiowano z przykładowej aplikacji Avalonia 12.1.4 na net8.0 ze skompilowanymi wiązaniami i FluentTheme. Zbudowano ją w Release na źródłach Avalonia sgcPivotGrid z 0 błędów i 0 ostrzeżeń. RecalculateAsync i SaveToXLSX wymagają edycji Registered i wersji 2026.11.

Widok: siatka, pola i lista pól

Jeden prefiks sgc mapuje wszystkie kontrolki sgcUI. Pola są zawartością siatki, ItemsSource wiąże wiersze, a lista pól podąża za siatką przez 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>

View model i code behind

Wystarczy ObservableCollection prostych obiektów. Każdy publiczny składnik staje się kolumną tabeli przestawnej, a zmiana kolekcji przeładowuje tabelę po 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");
        }
    }
}

Reszta aplikacji to standardowy szablon desktopowy Avalonia: Avalonia.Desktop i Avalonia.Themes.Fluent, <FluentTheme/> w App.axaml oraz pakiet esegece.sgcPivotGrid.Avalonia, albo esegece.sgcPivotGrid.Avalonia.Community dla edycji bezpłatnej. Szybki start Avalonia w pomocy buduje tę samą tabelę w kodzie przy użyciu BeginLoad, DefineColumn, AppendRow i EndLoad.

Jeden silnik tabeli przestawnej, każdy pulpit

Siatka przestawna Avalonia dzieli silnik, pola i format układu z wersjami WinForms, WPF, VCL i FireMonkey.

Cel Kontrolka Platformy
Avalonia 12, net8.0, net9.0, net10.0TsgcAvaloniaPivotGrid, TsgcAvaloniaPivotFieldListWindows, Linux i macOS
.NET Framework 4.7.2, .NET 8, 9 i 10TsgcWinFormsPivotGrid, TsgcWpfPivotGridWinForms i WPF w systemie Windows
Delphi od 7 do 13, VCLTsgcVCLPivotGridWin32 i Win64
Delphi od XE6 do 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS i Android
C++ Builder od 2007 do 13siatki przestawne VCL i FMXwygenerowane nagłówki .hpp i biblioteki statyczne

Bezpłatnie na start, pełny kod źródłowy po zakupie

Ceny ze strony z cennikiem sgcUI.

Community

esegece.sgcPivotGrid.Avalonia.Community w NuGet, bezpłatnie w projektach komercyjnych i niekomercyjnych dla osoby lub organizacji o rocznych przychodach brutto poniżej 1 000 000 EUR i najwyżej pięciu programistach. Zawiera siatkę, listę pól, agregacje, grupowanie dat, filtry, skale kolorów, eksporty CSV, HTML, JSON, PNG i SVG, drukowanie i PDF.

sgcPivotGrid .NET

Pakiet pojedynczy, €249 na programistę z pełnym kodem źródłowym C# i 1 rokiem aktualizacji. Dodaje Top N z Inne, pokaż wartości jako, pola i elementy obliczeniowe, zapisane układy, eksport XLSX, obliczenia asynchroniczne i wykresy przestawne, dla WinForms, WPF i Avalonia.

sgcUI .NET Enterprise

Każdy produkt sgcUI dla .NET, w tym sgcPivotGrid, od €699 na programistę. Wykresy przestawne wymagają także sgcCharts, który również jest w Enterprise.

Tabela przestawna w Avalonia: porównanie dróg

Stan na 2026-10-20, na podstawie stron podlinkowanych w tabeli.

  Tabela przestawna z pakietu WPF na Avalonia XPF Avalonia Pro sgcPivotGrid
Pivot gridkontrolka WPF, uruchamiana przez XPF, "a binary-compatible WPF runtime"nie wymieniona na stronie Avalonia Pronatywne kontrolki Avalonia 12 z listą pól
LicencjaXPF na aplikację: Internal 9 500 EUR, Business 29 500 EUR, Enterprise od 124 500 EUR899 EUR za stanowisko rocznie, bez VATna programistę, od €249, bez opłaty za aplikację, swobodna redystrybucja plików binarnych
Warunkiuwagi XPF o bibliotekach zewnętrznych mówią, że shimy API Win32 są "required for DevExpress controls" oraz że "Issues most commonly arise with controls that use GDI or WinForms components" pakiet Avalonia odwołuje się do Avalonia, Avalonia.Skia i SkiaSharp, a nie do WPF ani WinForms
Kod źródłowy pełny kod źródłowy kontrolek premium w Enterprisepełny kod źródłowy C# w każdej edycji Registered

XPF ma uruchamiać istniejącą aplikację WPF w systemach macOS i Linux z jej kodem i kontrolkami w dużej mierze bez zmian, a sgcPivotGrid tego nie robi: dodajesz go do widoku Avalonia. Jeśli przenosisz aplikację WPF lub WinForms, przeczytaj Z WinForms i WPF do Avalonia. Jeśli używasz Avalonia Pro, przeczytaj kontrolki, których Avalonia Pro nie dostarcza; sgcPivotGrid działa obok kontrolek Avalonia Pro.

Uruchom go, zanim napiszesz linijkę

Dema .NET sgcPivotGrid zawierają dwie aplikacje Avalonia, które działają w systemach Windows, Linux i macOS z .NET SDK 8.0 lub nowszym.

SalesPivotAvalonia

100 000 wygenerowanych wierszy sprzedaży z listą pól, kolumnami Rok, Kwartał i Miesiąc, sortowaniem według wartości, skalą kolorów, eksportem do CSV, HTML i PNG oraz paskiem zapytań AI. dotnet run ją uruchamia, a dotnet run -- --test result.txt wykonuje jej autotesty poza ekranem.

PivotChartAvalonia

Wykres przestawny jak w Excelu: TsgcAvaloniaPivotGrid, TsgcPivotChartTable i TsgcChartTableLink na TsgcAvaloniaChart, przyciski pól nad wykresem, projektant wykresów i ustawienia wykresu zapisane w układzie tabeli przestawnej. Wykres przestawny jest tylko w Registered.

Wolisz gotowy plik wykonywalny? Skompilowane dema każdego produktu sgcUI nie wymagają niczego zainstalowanego.

Najczęściej zadawane pytania

Tak. TsgcAvaloniaPivotGrid i TsgcAvaloniaPivotFieldList to kontrolki Avalonia w pakiecie esegece.sgcPivotGrid.Avalonia, zbudowane na bazie kontrolek Avalonia z sgcUICore i rysowane przez SkiaSharp. Pakiet jest przeznaczony dla Avalonia 12 (minimum pakietu 12.0, testowany na 12.1.4). Nie ma warstwy WPF ani środowiska XPF.

Windows, Linux i macOS przez Avalonia 12, z platformami docelowymi net8.0, net9.0 i net10.0. Ten sam produkt ma też siatki przestawne WinForms i WPF dla .NET Framework 4.7.2 oraz .NET 8, 9 i 10, a także siatki przestawne VCL i FireMonkey dla Delphi i C++ Builder.

Powiąż ItemsSource z dowolnym IEnumerable view modelu, na przykład ObservableCollection, List lub DataView, i zadeklaruj pola w XAML jako elementy TsgcAvaloniaPivotField z FieldName, Area i Aggregation. Każdy składnik elementów staje się kolumną tabeli przestawnej. Późniejsze zmiany kolekcji przeładowują tabelę raz na okno 100 ms. System.Data.DataTable można też odczytać przez TsgcPivotSource_DataSet.

Pakiet Community esegece.sgcPivotGrid.Avalonia.Community zawiera siatkę, listę pól z przeciąganiem, osiem agregacji, grupowanie dat, filtry elementów, etykiet i wartości, sortowanie, skale kolorów, eksport do CSV, HTML, JSON, PNG i SVG, drukowanie z podglądem, eksport do PDF, dostępność i układy z AI. Top N z Inne, pokaż wartości jako, pola i elementy obliczeniowe, zapisane układy, eksport XLSX, obliczenia asynchroniczne, wykresy przestawne i Undo układu z AI wymagają edycji Registered.

Tak. Układ jest zapisywany jako JSON przez SaveLayoutToString lub SaveLayoutToFile, a ustawienia wykresu przechowywane w JSON układu tabeli przestawnej są zgodne bajt w bajt z Delphi. Zapisane układy są w edycji Registered.

Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Dodaj tabelę przestawną do swojej aplikacji Avalonia

Zacznij od bezpłatnego pakietu Community z NuGet albo weź edycję Registered z wszystkimi funkcjami i pełnym kodem źródłowym C#, i uruchom demo SalesPivotAvalonia obok swojej aplikacji.