
在不到一秒的时间内透视一百万行。
- 每一列都存放在类型化列存储中,单元格通过对源数据行的一次遍历完成聚合。
BeginLoad、DefineColumn、AppendRow和EndLoad加载行数据,最后只重新计算一次。- MillionRows 演示加载并透视 1,000,000 行,并输出自己的耗时。
把字段拖入行、列和值,按年、季度或月份对日期分组,并让用户通过拖放字段列表自行构建布局。适用于 Delphi、C++ Builder 和 .NET 的原生数据透视表网格,包含源代码。
要汇总的海量数据行、想要自己视图的用户、必须核对并交付的数字。sgcPivotGrid 在一个控件中涵盖全部这些需求,适用于所有框架。
透视网格加上拖放字段列表,适用于 VCL、FireMonkey 和 .NET。
类型化列存储,每次重新计算只遍历一次,按百万行预算设计。
TDataSet、sgcGrid 表、.NET DataTable,或由代码追加的行。
CSV、JSON、HTML、PNG 和 SVG,在服务器或 Linux64 上也可无窗口运行。
截取自试用版附带的 sgcPivotGrid 演示。

BeginLoad、DefineColumn、AppendRow 和 EndLoad 加载行数据,最后只重新计算一次。
AddField('Date', pvaColumn, pvdQuarter) 每次调用增加一个层级,从 pvdYear 一直到 pvdDay。ExpandLevel 完成。
OnDrillDown,代码中可用 DrillDownCell 触发。DrillDown 以 IsgcUITable 返回源数据行,包含存储中的所有列。
SaveToCSV、SaveToJSON、SaveToHTML、SaveToPNG 和 SaveToSVG 按用户排列的方式写出视图。TsgcPivotGridRenderer 无需窗口即可绘制,可用于服务器或 Linux64。ResultTable 向 sgcCharts 提供可见结果,因此网格行可以先变成透视表再变成图表,无需复制数据。聚合、前 N 项、计算字段和已保存的布局,直接来自演示。


TopN 保留最大的成员,并把其余成员合并为“其他”行,因此总计仍然相加一致。
ShowAs 显示为占列总计的百分比。
一次重新计算加载 100,000 行,然后按季度排列各区域,最大的区域排在最前。Delphi、C++ Builder 和 C# 使用相同的 API。
dotnet add package esegece.sgcPivotGrid.WinForms
uses
Forms, Controls, SysUtils,
sgcPivotGrid_Types, sgcPivotGrid_Fields, sgcPivotGrid_VCL;
procedure CreatePivot(aForm: TForm);
const
Regions: array[0..3] of string = ('North', 'South', 'East', 'West');
var
vGrid: TsgcVCLPivotGrid;
vField: TsgcPivotField;
i: Integer;
begin
vGrid := TsgcVCLPivotGrid.Create(aForm);
vGrid.Parent := aForm;
vGrid.Align := alClient;
// load 100,000 rows, one recalculation at EndLoad
vGrid.Pivot.BeginLoad(True);
try
vGrid.Pivot.DefineColumn('Region', pvtText);
vGrid.Pivot.DefineColumn('Date', pvtDateTime);
vGrid.Pivot.DefineColumn('Sales', pvtFloat);
for i := 1 to 100000 do
vGrid.Pivot.AppendRow([Regions[i mod 4], EncodeDate(2025, 1, 1) + i mod 365,
10 + (i mod 97) * 1.5]);
finally
vGrid.Pivot.EndLoad;
end;
// layout: regions by quarter, the largest region first
vGrid.Pivot.BeginUpdate;
try
vField := vGrid.Pivot.AddField('Region', pvaRow);
vField.SortBy := pvsValue;
vField.SortOrder := pvoDescending;
vGrid.Pivot.AddField('Date', pvaColumn, pvdQuarter).Caption := 'Quarter';
vGrid.Pivot.AddDataField('Sales', pvfSum);
finally
vGrid.Pivot.EndUpdate;
end;
end;
可单独购买 sgcPivotGrid,也可在 sgcUI Enterprise 中获得它,与共用其主题和运行时的所有产品一起使用。均附带源代码。
对于 .NET, esegece.sgcPivotGrid.Community 在 NuGet 上免费。sgcPivotGrid 也包含在 All-Access 套餐。
每款 sgcUI 产品都使用同一个运行时 sgcUICore 绘制,因此透视表与周围的控件共享字体、间距、强调色和主题。

在 sgcGrid 中显示明细行,并通过 TsgcPivotSource_Table 对同一张表做透视。

图表数据源读取 ResultTable,因此图表显示的正是用户刚刚构建的布局。

把透视表及其图表放入仪表盘图块。
Standard
Professional 增加
Enterprise 增加