运行在 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 技术栈的替代方案

引擎对您已经在内存中的行做透视。它把每一列保存在带类型的列存储中,只需遍历一次源数据行即可完成聚合,并且只绘制结果中可见的部分。合计来自源值,绝不会是平均值的平均值。

用户对透视表的所有期待

标有 Registered 的功能不在免费的 Community 软件包中。其他所有功能在每个版本中都有。

功能 在 Avalonia 透视表网格上 版本
拖放字段列表TsgcAvaloniaPivotFieldList 带有行、列、筛选器和值区域,支持 DeferUpdate 和 ApplyChanges、带搜索的成员弹出窗口,以及日期字段上的分组菜单(无、年、季度、月、周、日)所有版本
聚合求和、计数、平均值、最小值、最大值、不重复计数、标准差和方差(pvfSum 到 pvfVar),含小计和总计所有版本
日期分组使用 pvdYear、pvdQuarter、pvdMonth、pvdWeek 和 pvdDay 的 DateGrouping,每个字段一个层级所有版本
筛选和排序成员、标签和值筛选,按标签或按值排序所有版本
Top N字段上的 TopN 和 TopNOthers:保留排名靠前的项,其余汇总为“其他”Registered
值显示方式ShowAs:占行、列或总计的百分比、累计、与某项的差异以及排名Registered
计算字段和计算项引擎上的 CalculatedFields,以及字段上的 CalculatedItems,用于对同级项进行公式运算,例如 East+West;合计仍以源数据行为基础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 通过任意 TsgcUIAIProvider 和 TsgcAvaloniaAIQueryBar,将自然语言问题转换为透视布局。只发送字段目录(名称、标题、类型和少量示例值),绝不发送数据行所有版本;撤销属于 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 中的透视表网格

这两个文件复制自一个示例 Avalonia 12.1.4 应用,运行在 net8.0 上,使用编译绑定和 FluentTheme。它已针对 sgcPivotGrid Avalonia 源代码以 Release 方式构建,0 个错误,0 个警告。RecalculateAsync 和 SaveToXLSX 需要 Registered 版和 2026.11 版本。

视图:网格、字段和字段列表

一个 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 在代码中构建同样的透视表。

一个透视引擎,适用于所有桌面

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,对年总收入低于 1,000,000 欧元且开发者不超过五人的个人或组织,在商业和非商业项目中均免费。包含网格、字段列表、聚合、日期分组、筛选、色阶、CSV、HTML、JSON、PNG 和 SVG 导出、打印以及 PDF。

sgcPivotGrid .NET

单一软件包,每位开发者 €249,含完整 C# 源代码和 1 年更新。针对 WinForms、WPF 和 Avalonia 增加包含“其他”的 Top N、值显示方式、计算字段和计算项、已保存布局、XLSX 导出、异步计算和透视图表。

sgcUI .NET Enterprise

适用于 .NET 的所有 sgcUI 产品(含 sgcPivotGrid),每位开发者 €699 起。透视图表还需要 sgcCharts,它同样包含在 Enterprise 中。

Avalonia 上的透视:各种途径对比

于 2026-10-20 读取自表中链接的页面。

  Avalonia XPF 上的 WPF 套件透视表 Avalonia Pro sgcPivotGrid
透视表网格由 XPF 运行的 WPF 控件,XPF 是“二进制兼容的 WPF 运行时”Avalonia Pro 页面上未列出带字段列表的原生 Avalonia 12 控件
许可XPF 按应用程序计:Internal 9,500 欧元,Business 29,500 欧元,Enterprise 起价 124,500 欧元每席位每年 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 控件并存运行。

写代码之前先运行看看

sgcPivotGrid 的 .NET 演示包含两个 Avalonia 应用,在 .NET SDK 8.0 或更高版本下可运行于 Windows、Linux 和 macOS。

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 一个时间窗口重新加载一次透视表。System.Data.DataTable 也可以通过 TsgcPivotSource_DataSet 读取。

Community 软件包 esegece.sgcPivotGrid.Avalonia.Community 包含网格、拖放字段列表、八种聚合、日期分组、成员、标签和值筛选、排序、色阶、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 演示。