A Grade Dinâmica Avalonia que Roda no Avalonia 12

O sgcPivotGrid dá à sua aplicação Avalonia uma tabela dinâmica de verdade: uma grade dinâmica, uma lista de campos com arrastar e soltar e gráficos dinâmicos, como controles Avalonia 12 nativos no Windows, Linux e macOS. Faça o binding ao seu view model em XAML, deixe os usuários arrastarem campos entre linhas, colunas, filtros e valores, e exporte o resultado para o Excel. Não há runtime WPF por baixo nem servidor OLAP para instalar.

Uma Tabela Dinâmica Feita para o Avalonia

As grades dinâmicas para aplicações desktop .NET costumam vir de suítes WinForms e WPF. No Avalonia, a escolha é pequena.

Nativa, não emulada

TsgcAvaloniaPivotGrid e TsgcAvaloniaPivotFieldList ficam no pacote esegece.sgcPivotGrid.Avalonia. Eles são construídos sobre a base de controles Avalonia do sgcUICore e desenhados com SkiaSharp, então rodam em qualquer lugar onde o Avalonia 12 rode no desktop. O piso do pacote é o Avalonia 12.0, e os testes e demos rodam no 12.1.4.

Uma alternativa a uma pilha OLAP

O motor pivota as linhas que você já tem na memória. Ele guarda cada coluna em um armazenamento colunar tipado, agrega em uma única passada pelas linhas de origem e desenha apenas a parte visível do resultado. Os totais vêm dos valores de origem, nunca de médias de médias.

Tudo o que os Usuários Esperam de uma Tabela Dinâmica

Os recursos marcados como Registrada não estão no pacote Community gratuito. Todos os outros recursos estão em todas as edições.

Recurso Na grade dinâmica Avalonia Edição
Lista de campos com arrastar e soltarTsgcAvaloniaPivotFieldList com as zonas Linhas, Colunas, Filtros e Valores, DeferUpdate e ApplyChanges, um popup de membros com busca e um menu Agrupar por (Nenhum, Ano, Trimestre, Mês, Semana, Dia) nos campos de datatodas as edições
AgregaçõesSoma, Contagem, Média, Mín, Máx, contagem distinta, desvio padrão e variância (pvfSum a pvfVar), com subtotais e totais geraistodas as edições
Agrupamento de datasDateGrouping com pvdYear, pvdQuarter, pvdMonth, pvdWeek e pvdDay, um nível por campotodas as edições
Filtros e ordenaçãofiltros de membro, de rótulo e de valor, ordenação por rótulo ou por valortodas as edições
Top NTopN e TopNOthers em um campo: mantém os principais itens e soma o restante em OutrosRegistrada
Mostrar valores comoShowAs: percentual da linha, da coluna ou do total geral, total acumulado, diferença em relação a e classificaçãoRegistrada
Campos e itens calculadosCalculatedFields no motor e CalculatedItems em um campo para fórmulas sobre itens irmãos como East+West; os totais continuam baseados nas linhas de origemRegistrada
Cálculo assíncronoAsyncCalculation, RecalculateAsync que devolve um Task<bool> com um CancellationToken, e CancelCalculation, para que a janela continue responsivaRegistrada
Formatação condicional e drill downFormatRules para escalas de cor, OnGetCellStyle, OnGetCellText e OnDrillDown para as linhas por trás de uma célulatodas as edições
ExportaçãoSaveToCSV, SaveToHTML, SaveToJSON, SaveToPNG e SaveToSVGtodas as edições
Exportação para o ExcelSaveToXLSX grava uma pasta de trabalho real sem biblioteca externa: cabeçalhos mesclados, estrutura de tópicos, cabeçalho congelado, formatos numéricos e planilhas da direita para a esquerdaRegistrada
Gráficos dinâmicosTsgcPivotChartTable alimenta um TsgcChartTableLink do sgcCharts em um TsgcAvaloniaChart, a lista de campos com Layout = pvlBar coloca botões de campo acima do gráfico, e o designer de gráficos abre com ShowDesignerAsyncsgcPivotGrid e sgcCharts Registrados
Pergunte à tabela dinâmicaTsgcPivotGridAI transforma uma pergunta em linguagem natural em um layout dinâmico por meio de qualquer TsgcUIAIProvider, com a TsgcAvaloniaAIQueryBar. Só o catálogo de campos é enviado (nomes, legendas, tipos e alguns valores de exemplo), nunca as linhastodas as edições; Desfazer é Registrada
Layouts salvosSaveLayoutToString, LoadLayoutFromString, SaveLayoutToFile e LoadLayoutFromFile; as configurações de gráfico no JSON do layout dinâmico são compatíveis byte a byte com o DelphiRegistrada
Impressão e PDFPrint, ShowPrintPreview e ExportToPDF, com os cabeçalhos em todas as páginas; o PDF é um documento PDF/UA marcado em que a tabela dinâmica vira uma tabela realtodas as edições
Temastemas claro, escuro e de alto contraste, e o preset Fluent; sob o Fluent, o Avalonia 12 com FluentTheme dá aos controles seus fundos, bordas, textos e preenchimentostodas as edições
Da direita para a esquerda e acessibilidadelayouts da direita para a esquerda guiados pela direção que o Avalonia já tem, e UI Automation ativada por padrãotodas as edições
Idiomastextos para o usuário final de pacotes de idioma incorporados para 12 idiomas, alternados com sgcUILang.SetLanguagetodas as edições

A exportação XLSX, os itens calculados, o cálculo assíncrono, os gráficos dinâmicos e os 12 pacotes de idioma constam no histórico do sgcUI .NET para a versão 2026.11.0. Para o tour completo dos recursos, veja a página do produto sgcPivotGrid.

Uma Grade Dinâmica em XAML do Avalonia

Os dois arquivos foram copiados de um aplicativo Avalonia 12.1.4 de exemplo em net8.0 com bindings compilados e FluentTheme. Ele foi compilado em Release contra os fontes Avalonia do sgcPivotGrid com 0 erros e 0 avisos. RecalculateAsync e SaveToXLSX exigem a edição Registrada e a versão 2026.11.

A view: grade, campos e lista de campos

Um único prefixo sgc mapeia todos os controles do sgcUI. Os campos são o conteúdo da grade, ItemsSource faz o binding das linhas, e a lista de campos acompanha a grade por meio de 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>

O view model e o code-behind

Uma ObservableCollection de objetos simples basta. Cada membro público vira uma coluna dinâmica, e uma alteração na coleção recarrega a tabela dinâmica após 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");
        }
    }
}

O resto do aplicativo é o template padrão de desktop do Avalonia: Avalonia.Desktop e Avalonia.Themes.Fluent, <FluentTheme/> em App.axaml, e o pacote esegece.sgcPivotGrid.Avalonia, ou esegece.sgcPivotGrid.Avalonia.Community para a edição gratuita. O guia de início rápido do Avalonia na ajuda monta a mesma tabela dinâmica em código com BeginLoad, DefineColumn, AppendRow e EndLoad.

Um Motor Dinâmico, Todos os Desktops

A grade dinâmica Avalonia compartilha o motor, os campos e o formato de layout com as versões WinForms, WPF, VCL e FireMonkey.

Destino Controle Plataformas
Avalonia 12, net8.0, net9.0, net10.0TsgcAvaloniaPivotGrid, TsgcAvaloniaPivotFieldListWindows, Linux e macOS
.NET Framework 4.7.2, .NET 8, 9 e 10TsgcWinFormsPivotGrid, TsgcWpfPivotGridWinForms e WPF no Windows
Delphi 7 a 13, VCLTsgcVCLPivotGridWin32 e Win64
Delphi XE6 a 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS e Android
C++ Builder 2007 a 13grades dinâmicas VCL e FMXcabeçalhos .hpp gerados e bibliotecas estáticas

Grátis para Começar, Código-Fonte Completo ao Comprar

Preços da página de preços do sgcUI.

Community

esegece.sgcPivotGrid.Avalonia.Community no NuGet, gratuito em projetos comerciais e não comerciais para uma pessoa ou organização com receita bruta anual abaixo de EUR 1.000.000 e no máximo cinco desenvolvedores. Tem a grade, a lista de campos, agregações, agrupamento de datas, filtros, escalas de cor, as exportações CSV, HTML, JSON, PNG e SVG, impressão e PDF.

sgcPivotGrid .NET

O pacote único, €249 por desenvolvedor com código-fonte C# completo e 1 ano de atualizações. Acrescenta Top N com Outros, mostrar valores como, campos e itens calculados, layouts salvos, exportação XLSX, cálculo assíncrono e gráficos dinâmicos, para WinForms, WPF e Avalonia.

sgcUI .NET Enterprise

Todos os produtos sgcUI para .NET, sgcPivotGrid incluído, a partir de €699 por desenvolvedor. Os gráficos dinâmicos também exigem o sgcCharts, que também está no Enterprise.

Tabela Dinâmica no Avalonia: os Caminhos Comparados

Consultado em 20/10/2026, nas páginas indicadas na tabela.

  Uma grade dinâmica de suíte WPF no Avalonia XPF Avalonia Pro sgcPivotGrid
Grade dinâmicao controle WPF, executado pelo XPF, "um runtime WPF compatível em nível binário"não consta na página do Avalonia Procontroles Avalonia 12 nativos com lista de campos
LicençaXPF por aplicação: Internal EUR 9.500, Business EUR 29.500, Enterprise a partir de EUR 124.500EUR 899 por assento por ano, sem IVApor desenvolvedor, a partir de €249, sem taxa por aplicação, redistribuição binária gratuita
Condiçõesas notas do XPF sobre terceiros dizem que os shims da API Win32 são "necessários para os controles DevExpress" e que "Os problemas surgem com mais frequência em controles que usam GDI ou componentes WinForms" o pacote Avalonia referencia Avalonia, Avalonia.Skia e SkiaSharp, não WPF nem WinForms
Código-fonte código-fonte completo dos controles premium no Enterprisecódigo-fonte C# completo em toda edição Registrada

O XPF pretende executar uma aplicação WPF existente no macOS e no Linux com seu código e seus controles praticamente como estão, e o sgcPivotGrid não faz isso: você o adiciona a uma view do Avalonia. Se você está migrando uma aplicação WPF ou WinForms, leia WinForms e WPF para Avalonia. Se você usa o Avalonia Pro, leia os controles que o Avalonia Pro não traz; o sgcPivotGrid roda ao lado dos controles do Avalonia Pro.

Execute Antes de Escrever Uma Linha

As demos .NET do sgcPivotGrid incluem dois aplicativos Avalonia que rodam no Windows, Linux e macOS com o .NET SDK 8.0 ou mais recente.

SalesPivotAvalonia

100.000 linhas de vendas geradas com lista de campos, colunas de Ano, Trimestre e Mês, ordenação por valor, uma escala de cor, exportação para CSV, HTML e PNG e a barra de consulta com IA. dotnet run a inicia, e dotnet run -- --test result.txt executa suas autoverificações fora da tela.

PivotChartAvalonia

Um gráfico dinâmico como no Excel: um TsgcAvaloniaPivotGrid, um TsgcPivotChartTable e um TsgcChartTableLink em um TsgcAvaloniaChart, botões de campo acima do gráfico, o designer de gráficos e as configurações do gráfico salvas no layout dinâmico. O gráfico dinâmico é somente Registrada.

Prefere um executável pronto? As demos compiladas de todos os produtos sgcUI não precisam de nada instalado.

Perguntas Frequentes

Sim. TsgcAvaloniaPivotGrid e TsgcAvaloniaPivotFieldList são controles Avalonia do pacote esegece.sgcPivotGrid.Avalonia, construídos sobre a base de controles Avalonia do sgcUICore e desenhados com SkiaSharp. O pacote tem como alvo o Avalonia 12 (piso do pacote 12.0, testado no 12.1.4). Não há camada WPF nem runtime XPF.

Windows, Linux e macOS por meio do Avalonia 12, com os frameworks de destino net8.0, net9.0 e net10.0. O mesmo produto também tem grades dinâmicas WinForms e WPF para .NET Framework 4.7.2 e .NET 8, 9 e 10, e grades dinâmicas VCL e FireMonkey para Delphi e C++ Builder.

Faça o binding de ItemsSource a qualquer IEnumerable do view model, por exemplo uma ObservableCollection, uma List ou um DataView, e declare os campos em XAML como elementos TsgcAvaloniaPivotField com FieldName, Area e Aggregation. Cada membro dos itens se torna uma coluna dinâmica. As alterações posteriores da coleção recarregam a tabela dinâmica uma vez por janela de 100 ms. Um System.Data.DataTable também pode ser lido por meio de TsgcPivotSource_DataSet.

O pacote Community esegece.sgcPivotGrid.Avalonia.Community tem a grade, a lista de campos com arrastar e soltar, oito agregações, agrupamento de datas, filtros de membro, de rótulo e de valor, ordenação, escalas de cor, exportação para CSV, HTML, JSON, PNG e SVG, impressão com visualização, exportação para PDF, acessibilidade e layouts com IA. Top N com Outros, mostrar valores como, campos e itens calculados, layouts salvos, exportação XLSX, cálculo assíncrono, gráficos dinâmicos e Desfazer de um layout de IA exigem uma edição Registrada.

Sim. O layout é salvo como JSON com SaveLayoutToString ou SaveLayoutToFile, e as configurações de gráfico guardadas no JSON do layout dinâmico são compatíveis byte a byte com o Delphi. Os layouts salvos fazem parte da edição Registrada.

Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Adicione uma Tabela Dinâmica ao seu Aplicativo Avalonia

Comece com o pacote Community gratuito do NuGet, ou escolha a edição Registrada para ter todos os recursos e o código-fonte C# completo, e execute a demo SalesPivotAvalonia ao lado do seu aplicativo.