El Pivot Grid para Avalonia que funciona en Avalonia 12

sgcPivotGrid da a tu aplicación Avalonia una tabla dinámica de verdad: un pivot grid, una lista de campos con arrastrar y soltar y gráficos dinámicos, como controles nativos de Avalonia 12 en Windows, Linux y macOS. Enlázalo a tu view model en XAML, deja que los usuarios arrastren campos entre filas, columnas, filtros y valores, y exporta el resultado a Excel. No hay un runtime WPF por debajo ni un servidor OLAP que instalar.

Una tabla dinámica hecha para Avalonia

Los pivot grids para aplicaciones de escritorio .NET suelen venir de suites WinForms y WPF. En Avalonia, la oferta es pequeña.

Nativo, no emulado

TsgcAvaloniaPivotGrid y TsgcAvaloniaPivotFieldList viven en el paquete esegece.sgcPivotGrid.Avalonia. Se construyen sobre la base de controles Avalonia de sgcUICore y se dibujan con SkiaSharp, así que funcionan allí donde Avalonia 12 funciona en el escritorio. El mínimo del paquete es Avalonia 12.0 y las pruebas y los demos se ejecutan en 12.1.4.

Una alternativa a una pila OLAP

El motor pivota las filas que ya tienes en memoria. Guarda cada columna en un almacén de columnas tipado, agrega en una sola pasada sobre las filas de origen y dibuja solo la parte visible del resultado. Los totales salen de los valores de origen, nunca de promedios de promedios.

Todo lo que los usuarios esperan de una tabla dinámica

Las funciones marcadas como Registered no están en el paquete gratuito Community. Todas las demás están en todas las ediciones.

Función En el pivot grid de Avalonia Edición
Lista de campos con arrastrar y soltarTsgcAvaloniaPivotFieldList con las zonas Filas, Columnas, Filtros y Valores, DeferUpdate y ApplyChanges, un popup de miembros con búsqueda y un menú Agrupar por (Ninguno, Año, Trimestre, Mes, Semana, Día) en los campos de fechatodas las ediciones
AgregacionesSuma, Cuenta, Promedio, Mín, Máx, recuento distinto, desviación estándar y varianza (pvfSum a pvfVar), con subtotales y totales generalestodas las ediciones
Agrupación de fechasDateGrouping con pvdYear, pvdQuarter, pvdMonth, pvdWeek y pvdDay, un nivel por campotodas las ediciones
Filtros y ordenaciónfiltros de miembro, de etiqueta y de valor, ordenación por etiqueta o por valortodas las ediciones
Top NTopN y TopNOthers en un campo: conserva los primeros elementos y suma el resto en OtrosRegistered
Mostrar valores comoShowAs: porcentaje de la fila, de la columna o del total general, total acumulado, diferencia con y clasificaciónRegistered
Campos y elementos calculadosCalculatedFields en el motor y CalculatedItems en un campo para fórmulas sobre elementos hermanos como East+West; los totales siguen basándose en las filas de origenRegistered
Cálculo asíncronoAsyncCalculation, RecalculateAsync que devuelve un Task<bool> con un CancellationToken, y CancelCalculation, para que la ventana siga respondiendoRegistered
Formato condicional y desgloseFormatRules para escalas de color, OnGetCellStyle, OnGetCellText y OnDrillDown para las filas que hay detrás de una celdatodas las ediciones
ExportaciónSaveToCSV, SaveToHTML, SaveToJSON, SaveToPNG y SaveToSVGtodas las ediciones
Exportación a ExcelSaveToXLSX escribe un libro real sin ninguna biblioteca externa: encabezados combinados, esquema, encabezado fijo, formatos numéricos y hojas de derecha a izquierdaRegistered
Gráficos dinámicosTsgcPivotChartTable alimenta un TsgcChartTableLink de sgcCharts en un TsgcAvaloniaChart, la lista de campos con Layout = pvlBar coloca botones de campo sobre el gráfico y el diseñador de gráficos se abre con ShowDesignerAsyncsgcPivotGrid y sgcCharts Registered
Pregunta al pivotTsgcPivotGridAI convierte una pregunta en lenguaje natural en un diseño de pivot mediante cualquier TsgcUIAIProvider, con la TsgcAvaloniaAIQueryBar. Solo se envía el catálogo de campos (nombres, títulos, tipos y unos pocos valores de ejemplo), nunca las filastodas las ediciones; Undo es Registered
Diseños guardadosSaveLayoutToString, LoadLayoutFromString, SaveLayoutToFile y LoadLayoutFromFile; la configuración del gráfico en el JSON del diseño del pivot es compatible byte a byte con DelphiRegistered
Impresión y PDFPrint, ShowPrintPreview y ExportToPDF, con los encabezados en cada página; el PDF es un documento PDF/UA etiquetado en el que el pivot se convierte en una tabla realtodas las ediciones
Temastemas claro, oscuro y de alto contraste, y el preset Fluent; con Fluent, Avalonia 12 con FluentTheme da a los controles sus fondos, bordes, textos y rellenostodas las ediciones
Derecha a izquierda y accesibilidaddiseños de derecha a izquierda guiados por la dirección que Avalonia ya tiene, y UI Automation activado por defectotodas las ediciones
Idiomastextos para el usuario final desde paquetes de idioma integrados para 12 idiomas, que se cambian con sgcUILang.SetLanguagetodas las ediciones

La exportación a XLSX, los elementos calculados, el cálculo asíncrono, los gráficos dinámicos y los 12 paquetes de idioma figuran en el historial de sgcUI .NET para la versión 2026.11.0. Para el recorrido completo de funciones consulta la página de producto de sgcPivotGrid.

Un pivot grid en XAML de Avalonia

Los dos archivos se copiaron de una app de ejemplo Avalonia 12.1.4 sobre net8.0 con enlaces compilados y FluentTheme. Se compiló en Release con las fuentes Avalonia de sgcPivotGrid con 0 errores y 0 advertencias. RecalculateAsync y SaveToXLSX requieren la edición Registered y la versión 2026.11.

La vista: grid, campos y lista de campos

Un único prefijo sgc asigna todos los controles de sgcUI. Los campos son el contenido del grid, ItemsSource enlaza las filas y la lista de campos sigue al grid mediante 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>

El view model y el code behind

Basta con un ObservableCollection de objetos simples. Cada miembro público se convierte en una columna del pivot, y un cambio en la colección recarga el pivot pasados 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");
        }
    }
}

El resto de la app es la plantilla de escritorio estándar de Avalonia: Avalonia.Desktop y Avalonia.Themes.Fluent, <FluentTheme/> en App.axaml y el paquete esegece.sgcPivotGrid.Avalonia, o esegece.sgcPivotGrid.Avalonia.Community para la edición gratuita. El inicio rápido de Avalonia en la ayuda construye el mismo pivot en código con BeginLoad, DefineColumn, AppendRow y EndLoad.

Un motor de pivot, todos los escritorios

El pivot grid de Avalonia comparte motor, campos y formato de diseño con las versiones WinForms, WPF, VCL y FireMonkey.

Destino Control Plataformas
Avalonia 12, net8.0, net9.0, net10.0TsgcAvaloniaPivotGrid, TsgcAvaloniaPivotFieldListWindows, Linux y macOS
.NET Framework 4.7.2, .NET 8, 9 y 10TsgcWinFormsPivotGrid, TsgcWpfPivotGridWinForms y WPF en Windows
Delphi 7 a 13, VCLTsgcVCLPivotGridWin32 y Win64
Delphi XE6 a 13, FireMonkeyTsgcFMXPivotGridWindows, macOS, iOS y Android
C++ Builder 2007 a 13pivot grids VCL y FMXcabeceras .hpp generadas y bibliotecas estáticas

Gratis para empezar, código fuente completo al comprar

Precios de la página de precios de sgcUI.

Community

esegece.sgcPivotGrid.Avalonia.Community en NuGet, gratis en proyectos comerciales y no comerciales para una persona u organización con ingresos brutos anuales inferiores a 1.000.000 EUR y no más de cinco desarrolladores. Incluye el grid, la lista de campos, agregaciones, agrupación de fechas, filtros, escalas de color, las exportaciones CSV, HTML, JSON, PNG y SVG, impresión y PDF.

sgcPivotGrid .NET

El paquete individual, €249 por desarrollador con código fuente C# completo y 1 año de actualizaciones. Añade Top N con Otros, mostrar valores como, campos y elementos calculados, diseños guardados, exportación a XLSX, cálculo asíncrono y gráficos dinámicos, para WinForms, WPF y Avalonia.

sgcUI .NET Enterprise

Todos los productos sgcUI para .NET, sgcPivotGrid incluido, desde €699 por desarrollador. Los gráficos dinámicos también necesitan sgcCharts, que también está en Enterprise.

Pivot en Avalonia: las vías comparadas

Consultado el 2026-10-20, a partir de las páginas enlazadas en la tabla.

  Un pivot de suite WPF sobre Avalonia XPF Avalonia Pro sgcPivotGrid
Pivot gridel control WPF, ejecutado por XPF, "a binary-compatible WPF runtime"no figura en la página de Avalonia Procontroles nativos de Avalonia 12 con lista de campos
LicenciaXPF por aplicación: Internal 9.500 EUR, Business 29.500 EUR, Enterprise desde 124.500 EUR899 EUR por puesto y año, sin IVApor desarrollador, desde €249, sin tarifa por aplicación, redistribución de binarios libre
Condicioneslas notas de XPF sobre terceros dicen que los shims de la API Win32 son "required for DevExpress controls" y que "Issues most commonly arise with controls that use GDI or WinForms components" el paquete de Avalonia referencia Avalonia, Avalonia.Skia y SkiaSharp, no WPF ni WinForms
Código fuente código fuente completo de los controles premium en Enterprisecódigo fuente C# completo en todas las ediciones Registered

XPF pretende ejecutar una aplicación WPF existente en macOS y Linux con su código y sus controles prácticamente tal cual, y sgcPivotGrid no hace eso: lo añades a una vista de Avalonia. Si estás migrando una app WPF o WinForms, lee De WinForms y WPF a Avalonia. Si usas Avalonia Pro, lee los controles que Avalonia Pro no incluye; sgcPivotGrid funciona junto a los controles de Avalonia Pro.

Pruébalo antes de escribir una línea

Los demos .NET de sgcPivotGrid incluyen dos apps Avalonia que funcionan en Windows, Linux y macOS con el SDK de .NET 8.0 o posterior.

SalesPivotAvalonia

100.000 filas de ventas generadas con una lista de campos, columnas de año, trimestre y mes, ordenación por valor, una escala de color, exportación a CSV, HTML y PNG y la barra de consulta con IA. dotnet run lo inicia, y dotnet run -- --test result.txt ejecuta sus autocomprobaciones fuera de pantalla.

PivotChartAvalonia

Un gráfico dinámico como en Excel: un TsgcAvaloniaPivotGrid, un TsgcPivotChartTable y un TsgcChartTableLink en un TsgcAvaloniaChart, botones de campo sobre el gráfico, el diseñador de gráficos y la configuración del gráfico guardada en el diseño del pivot. El gráfico dinámico es solo Registered.

¿Prefieres un ejecutable listo? Los demos compilados de todos los productos sgcUI no necesitan nada instalado.

Preguntas frecuentes

Sí. TsgcAvaloniaPivotGrid y TsgcAvaloniaPivotFieldList son controles de Avalonia en el paquete esegece.sgcPivotGrid.Avalonia, construidos sobre la base de controles Avalonia de sgcUICore y dibujados con SkiaSharp. El paquete tiene como destino Avalonia 12 (mínimo del paquete 12.0, probado en 12.1.4). No hay capa WPF ni runtime XPF.

Windows, Linux y macOS mediante Avalonia 12, con los target frameworks net8.0, net9.0 y net10.0. El mismo producto tiene también pivot grids WinForms y WPF para .NET Framework 4.7.2 y .NET 8, 9 y 10, y pivot grids VCL y FireMonkey para Delphi y C++ Builder.

Enlaza ItemsSource a cualquier IEnumerable del view model, por ejemplo un ObservableCollection, un List o un DataView, y declara los campos en XAML como elementos TsgcAvaloniaPivotField con FieldName, Area y Aggregation. Cada miembro de los elementos se convierte en una columna del pivot. Los cambios posteriores de la colección recargan el pivot una vez por ventana de 100 ms. Un System.Data.DataTable también puede leerse mediante TsgcPivotSource_DataSet.

El paquete Community esegece.sgcPivotGrid.Avalonia.Community incluye el grid, la lista de campos con arrastrar y soltar, ocho agregaciones, agrupación de fechas, filtros de miembro, de etiqueta y de valor, ordenación, escalas de color, exportación a CSV, HTML, JSON, PNG y SVG, impresión con vista previa, exportación a PDF, accesibilidad y diseños con IA. Top N con Otros, mostrar valores como, campos y elementos calculados, diseños guardados, exportación a XLSX, cálculo asíncrono, gráficos dinámicos y Undo de un diseño con IA requieren una edición Registered.

Sí. El diseño se guarda como JSON con SaveLayoutToString o SaveLayoutToFile, y la configuración del gráfico almacenada en el JSON del diseño del pivot es compatible byte a byte con Delphi. Los diseños guardados están en la edición Registered.

La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

Añade una tabla dinámica a tu app Avalonia

Empieza con el paquete gratuito Community de NuGet, o elige la edición Registered para todas las funciones y el código fuente C# completo, y ejecuta el demo SalesPivotAvalonia junto a tu app.