syncfusion-angular-pivot-table

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing Angular Pivot Grid

实现Angular数据透视网格

The Syncfusion Angular Pivot Grid is a powerful data visualization and analysis component for creating interactive pivot tables, aggregating multidimensional data, and performing advanced analytics operations.
Important: Always verify API class names, properties, and method signatures by consulting the reference files in this skill (
references/*.md
). These are maintained with verified, working examples. Do not assume API details from other sources.
Syncfusion Angular数据透视网格是一款功能强大的数据可视化与分析组件,用于创建交互式数据透视表、聚合多维数据并执行高级分析操作。
重要提示: 请务必通过查阅此技能中的参考文件
references/*.md
)来验证API类名、属性和方法签名。这些文件包含经过验证的可用示例。请勿从其他来源推断API细节。

When to Use This Skill

何时使用此技能

Use this skill when users need to:
  • Create and configure pivot tables from multidimensional data
  • Bind data from OLAP or relational data sources
  • Aggregate data with multiple aggregation functions (Sum, Avg, Count, etc.)
  • Group data by number ranges, dates, or custom categories
  • Create and manage calculated fields with formulas
  • Enable drill-down and drill-through operations
  • Visualize data with integrated pivot charts
  • Apply custom formatting and conditional styling
  • Optimize large dataset performance
  • Export pivot grid data to Excel or PDF
  • Persist and restore pivot grid state
  • Customize UI with field lists, grouping bars, and toolbars
当用户需要以下功能时,使用此技能:
  • 从多维数据创建并配置数据透视表
  • 绑定OLAP或关系型数据源的数据
  • 使用多种聚合函数(求和、平均值、计数等)聚合数据
  • 按数值范围、日期或自定义类别对数据进行分组
  • 使用公式创建和管理计算字段
  • 启用钻取和穿透操作
  • 通过集成的数据透视图可视化数据
  • 应用自定义格式和条件样式
  • 优化大数据集的性能
  • 将数据透视网格数据导出为Excel或PDF格式
  • 保存和恢复数据透视网格状态
  • 通过字段列表、分组栏和工具栏自定义UI

Documentation Guide

文档指南

Getting Started

入门指南

📄 Read: references/getting-started.md
  • Installation and package setup
  • Basic Angular Pivot Grid implementation
  • CSS imports and theme configuration
  • RTL (Right-to-Left) support
  • Component initialization
📄 阅读: references/getting-started.md
  • 安装与包配置
  • 基础Angular数据透视网格实现
  • CSS导入与主题配置
  • RTL(从右到左)支持
  • 组件初始化

Aggregation

数据聚合

📄 Read: references/aggregation.md
  • Aggregation functions: Sum, Avg, Count, Min, Max, Product, Median, DistinctCount
  • Advanced aggregations: DifferenceFrom, PercentageOfDifferenceFrom, PercentageOfParentTotal
  • Base field configuration with baseField and baseItem properties
  • Multiple aggregations on same field
  • Customizing aggregation dropdown and UI
  • Runtime aggregation type changes
  • Events: aggregateCellInfo, actionBegin, actionComplete
📄 阅读: references/aggregation.md
  • 聚合函数:求和、平均值、计数、最小值、最大值、乘积、中位数、去重计数
  • 高级聚合:差值、差值百分比、父级总计百分比
  • 使用baseField和baseItem属性配置基准字段
  • 同一字段的多聚合设置
  • 自定义聚合下拉菜单与UI
  • 运行时聚合类型变更
  • 事件:aggregateCellInfo、actionBegin、actionComplete

Grouping

数据分组

📄 Read: references/grouping.md
  • Enable grouping with
    allowGrouping: true
    and inject
    GroupingService
  • Number grouping: Configure ranges with rangeInterval, startingAt, endingAt
  • Date grouping: Organize by Years, Quarters, Months, Days, Hours, Minutes, Seconds
  • Custom grouping: Group data by business-defined categories
  • UI-based grouping through context menu
  • Ungrouping and programmatic ungrouping
  • Common grouping patterns and troubleshooting
📄 阅读: references/grouping.md
  • 通过
    allowGrouping: true
    启用分组并注入
    GroupingService
  • 数值分组:使用rangeInterval、startingAt、endingAt配置范围
  • 日期分组:按年、季度、月、日、时、分、秒组织数据
  • 自定义分组:按业务定义的类别对数据分组
  • 通过上下文菜单进行基于UI的分组
  • 取消分组与程序化取消分组
  • 常见分组模式与故障排除

Calculated Fields

计算字段

📄 Read: references/calculated-field.md
  • Creating calculated fields interactively and programmatically
  • Enabling with
    allowCalculatedField: true
    , injecting
    CalculatedFieldService
  • Defining with
    calculatedFieldSettings
    (name, formula)
  • Adding to values array with
    type: 'CalculatedField'
  • Editing/renaming fields through UI (Field List, Grouping Bar)
  • Formula syntax: Operators (+, -, , /, ^, <, >, ==, !=, &, |, ?), Functions (abs, min, max, isNaN, Math.)
  • Aggregation functions in formulas: Sum, Count, Avg, Min, Max
  • Formatting with separate
    formatSettings
    array: Currency (C), Number (N), Percentage (P)
  • Events: calculatedFieldCreate (validation), actionBegin/actionComplete (control operations)
📄 阅读: references/calculated-field.md
  • 以交互方式和程序化方式创建计算字段
  • 通过
    allowCalculatedField: true
    启用并注入
    CalculatedFieldService
  • 使用
    calculatedFieldSettings
    定义(名称、公式)
  • 通过
    type: 'CalculatedField'
    添加到值数组
  • 通过UI(字段列表、分组栏)编辑/重命名字段
  • 公式语法:运算符(+、-、、/、^、<、>、==、!=、&、|、?)、函数(abs、min、max、isNaN、Math.
  • 公式中的聚合函数:求和、计数、平均值、最小值、最大值
  • 使用单独的
    formatSettings
    数组设置格式:货币(C)、数值(N)、百分比(P)
  • 事件:calculatedFieldCreate(验证)、actionBegin/actionComplete(控制操作)

Pivot Chart Integration

数据透视图集成

📄 Read: references/pivot-chart-integration.md
  • Chart types: 21+ types including Line, Column, Area, Bar, Pie, Doughnut, Funnel, Pyramid
  • Display options: Configure with
    displayOption
    to show Grid, Chart, or Both
  • Series customization: Customize charts via
    chartSeries
    with marker, dataLabel, etc.
  • Drill operations: Enable drill-down/drill-up on accumulation charts
  • Multiple axes: Configure
    enableMultipleAxis
    for multi-value visualization
  • Chart events: Series creation, axis customization, legend customization
📄 阅读: references/pivot-chart-integration.md
  • 图表类型:21种以上,包括折线图、柱状图、面积图、条形图、饼图、环形图、漏斗图、金字塔图
  • 显示选项:使用
    displayOption
    配置显示网格、图表或两者同时显示
  • 系列自定义:通过
    chartSeries
    自定义图表的标记、数据标签等
  • 钻取操作:在累积图表上启用钻取/钻取返回
  • 多轴:配置
    enableMultipleAxis
    实现多值可视化
  • 图表事件:系列创建、轴自定义、图例自定义

Filtering & Sorting

筛选与排序

📄 Read: references/filtering-and-sorting.md
  • Label filtering: Filter by field names and member values
  • Value filtering: Filter rows/columns by aggregated values
  • Member filtering: UI-based filtering through Field List
  • Member search: Quick search in filter dialogs
  • Sort settings: Configure ascending/descending sort by field
  • Advanced sorting: Sort by aggregated values or custom order
📄 阅读: references/filtering-and-sorting.md
  • 标签筛选:按字段名称和成员值筛选
  • 值筛选:按聚合值筛选行/列
  • 成员筛选:通过字段列表进行基于UI的筛选
  • 成员搜索:在筛选对话框中快速搜索
  • 排序设置:配置字段的升序/降序排序
  • 高级排序:按聚合值或自定义顺序排序

Data Formatting & Conditional Formatting

数据格式与条件格式

📄 Read: references/data-formatting.md
  • Number formats: Currency (C), Percentage (P), Number (N), Scientific (E)
  • Custom formats: Define format strings with placeholders
  • Conditional formatting: Apply colors/styles based on cell values
  • Icon sets: Display icons based on thresholds
  • Data bars: Show bar visualization within cells
  • Format settings configuration
📄 阅读: references/data-formatting.md
  • 数值格式:货币(C)、百分比(P)、数值(N)、科学计数法(E)
  • 自定义格式:使用占位符定义格式字符串
  • 条件格式:根据单元格值应用颜色/样式
  • 图标集:根据阈值显示图标
  • 数据条:在单元格内显示条形可视化效果
  • 格式设置配置

Export & Printing

导出与打印

📄 Read: references/export-and-print.md
  • Excel export:
    excelExport()
    with custom properties, themes
  • PDF export:
    pdfExport()
    with headers, footers, page orientation
  • CSV export:
    csvExport()
    for large datasets (1M+ rows)
  • Print functionality:
    print()
    method for table and chart
  • Multi-table export: Combine multiple pivot tables in single file
  • Export customization: Cell styling, color themes, branding
📄 阅读: references/export-and-print.md
  • Excel导出:使用
    excelExport()
    并配置自定义属性、主题
  • PDF导出:使用
    pdfExport()
    并配置页眉、页脚、页面方向
  • CSV导出:使用
    csvExport()
    处理大数据集(100万+行)
  • 打印功能:使用
    print()
    方法打印表格和图表
  • 多表导出:将多个数据透视表合并到单个文件中
  • 导出自定义:单元格样式、颜色主题、品牌标识

UI Customization

UI自定义

📄 Read: references/ui-customization.md
  • Toolbar configuration: Show/hide built-in toolbar items
  • Report management: New, Save, Load, Delete reports
  • View switching: Toggle between Grid and Chart modes
  • Export options: Quick export buttons
  • Grand totals/Subtotals: Show/hide and customize positioning
  • Custom templates: Build custom toolbar or field list
📄 阅读: references/ui-customization.md
  • 工具栏配置:显示/隐藏内置工具栏项
  • 报表管理:新建、保存、加载、删除报表
  • 视图切换:在网格和图表模式之间切换
  • 导出选项:快速导出按钮
  • 总计/小计:显示/隐藏并自定义位置
  • 自定义模板:构建自定义工具栏或字段列表

Grouping Bar UI Operations

分组栏UI操作

📄 Read: references/grouping-bar-ui-operations.md
  • Grouping bar setup and configuration
  • Drag-and-drop field reorganization between axes
  • Filter, sort, and remove operations
  • Fields panel management and visibility control
  • Icon controls: filter, sort, remove buttons
  • Field-specific vs global icon configuration
  • Responsive grouping bar for different screen sizes
📄 阅读: references/grouping-bar-ui-operations.md
  • 分组栏设置与配置
  • 通过拖放在轴之间重新组织字段
  • 筛选、排序和移除操作
  • 字段面板管理与可见性控制
  • 图标控件:筛选、排序、移除按钮
  • 字段特定与全局图标配置
  • 适配不同屏幕尺寸的响应式分组栏

Tooltips Customization

工具提示自定义

📄 Read: references/tooltips-customization.md
  • Enable/disable tooltips with
    showTooltip
    property
  • Custom tooltip templates with dynamic placeholders
  • Available placeholders:
    ${rowHeaders}
    ,
    ${columnHeaders}
    ,
    ${value}
    , etc.
  • Pivot chart tooltip customization
  • CSS styling for tooltip appearance
  • Dynamic tooltip content based on cell values
  • Troubleshooting tooltip rendering issues
📄 阅读: references/tooltips-customization.md
  • 使用
    showTooltip
    属性启用/禁用工具提示
  • 带动态占位符的自定义工具提示模板
  • 可用占位符:
    ${rowHeaders}
    ${columnHeaders}
    ${value}
  • 数据透视图工具提示自定义
  • 工具提示外观的CSS样式设置
  • 根据单元格值动态生成工具提示内容
  • 工具提示渲染问题的故障排除

Editing & Drill Operations

编辑与钻取操作

📄 Read: references/editing-drill-operations.md
  • Enable cell editing with
    allowEditing: true
    (relational data only)
  • Edit settings:
    allowAdding
    ,
    allowDeleting
    ,
    allowCommandColumns
  • Four editing modes: Normal, Dialog, Batch, Command Column
  • Inline editing for quick updates
  • Edit events:
    editCompleted
    ,
    actionBegin
    ,
    actionComplete
    ,
    actionFailure
  • Custom validation and confirmation dialogs
  • Editing via pivot chart data points
  • CRUD operations and data persistence
  • Drill through and drill down operations
  • Cell drill-down events and customization
📄 阅读: references/editing-drill-operations.md
  • 通过
    allowEditing: true
    启用单元格编辑(仅关系型数据)
  • 编辑设置:
    allowAdding
    allowDeleting
    allowCommandColumns
  • 四种编辑模式:普通、对话框、批量、命令列
  • 快速更新的内联编辑
  • 编辑事件:
    editCompleted
    actionBegin
    actionComplete
    actionFailure
  • 自定义验证与确认对话框
  • 通过数据透视图数据点进行编辑
  • CRUD操作与数据持久化
  • 穿透和钻取操作
  • 单元格钻取事件与自定义

OLAP Data Sources

OLAP数据源

📄 Read: references/olap-data-sources.md
  • OLAP vs relational data source differences
  • Connection configuration:
    url
    ,
    catalog
    ,
    cube
    ,
    providerType
  • OLAP cube elements: Measures, Dimensions, Hierarchies, Named Sets
  • Authentication and role-based access control
  • Working with hierarchies and attribute hierarchies
  • Calculated fields (Calculated Measures and Dimensions) for OLAP
  • Advanced features: Virtual scrolling, drill-down, filter axis
  • MDX formula support and expression syntax
📄 阅读: references/olap-data-sources.md
  • OLAP与关系型数据源的差异
  • 连接配置:
    url
    catalog
    cube
    providerType
  • OLAP多维数据集元素:度量值、维度、层次结构、命名集
  • 身份验证与基于角色的访问控制
  • 处理层次结构和属性层次结构
  • OLAP的计算字段(计算度量值和维度)
  • 高级功能:虚拟滚动、钻取、筛选轴
  • MDX公式支持与表达式语法

Paging Configuration

分页配置

📄 Read: references/paging-configuration.md
  • Enable paging with
    enablePaging: true
    and inject
    PagerService
  • Page settings:
    rowPageSize
    ,
    columnPageSize
    ,
    currentRowPage
    ,
    currentColumnPage
  • Pager UI configuration and positioning (Top/Bottom)
  • Row vs column paging
  • Compact view and inverse pager layout
  • Custom page size options in dropdown
  • Paging with virtual scrolling for optimization
  • Server-side paging for huge datasets
  • Mobile-optimized paging
📄 阅读: references/paging-configuration.md
  • 通过
    enablePaging: true
    启用分页并注入
    PagerService
  • 分页设置:
    rowPageSize
    columnPageSize
    currentRowPage
    currentColumnPage
  • 分页器UI配置与位置(顶部/底部)
  • 行分页与列分页
  • 紧凑视图与反向分页器布局
  • 下拉菜单中的自定义页面大小选项
  • 结合虚拟滚动的分页优化
  • 大数据集的服务器端分页
  • 针对移动设备优化的分页

Virtual Scrolling

虚拟滚动

📄 Read: references/virtual-scrolling.md
  • Enable virtual scrolling with
    enableVirtualization: true
    for large datasets
  • Single page mode: Use
    allowSinglePage: true
    to render only current view page
  • Limitations: pixel-based columnWidth, avoid runtime sizing changes
  • Static FieldList synchronization using
    enginePopulated
    events and
    update
    /
    updateView
    methods
  • Performance optimization for 100K+ rows on client-side
📄 阅读: references/virtual-scrolling.md
  • 通过
    enableVirtualization: true
    为大数据集启用虚拟滚动
  • 单页模式:使用
    allowSinglePage: true
    仅渲染当前视图页面
  • 限制:基于像素的columnWidth,避免运行时尺寸变更
  • 使用
    enginePopulated
    事件和
    update
    /
    updateView
    方法同步静态FieldList
  • 客户端处理10万+行的性能优化

Drill-Down & Drill-Through Operations

钻取与穿透操作

📄 Read: references/drill-down.md
  • Drill-down: Navigate hierarchical data by clicking cells
  • Drill-up: Navigate back to higher levels
  • Drill-through: View raw underlying data for aggregated values
  • Events:
    cellClick
    ,
    fieldDrop
    ,
    fieldsUpdated
    for drill interactions
  • Context menu: Built-in drill operations
📄 阅读: references/drill-down.md
  • 钻取:通过点击单元格导航层次化数据
  • 钻取返回:导航回更高层级
  • 穿透:查看聚合值对应的原始底层数据
  • 事件:
    cellClick
    fieldDrop
    fieldsUpdated
    用于钻取交互
  • 上下文菜单:内置钻取操作

Database Connections

数据库连接

📄 Read: references/database-connections.md
  • Relational databases: SQL Server, MySQL, PostgreSQL, Oracle
  • NoSQL databases: MongoDB support
  • Big data: Elasticsearch integration
  • Connection strings: Configure data source connections
  • Query optimization: Pre-aggregation and filtering
📄 阅读: references/database-connections.md
  • 关系型数据库:SQL Server、MySQL、PostgreSQL、Oracle
  • NoSQL数据库:MongoDB支持
  • 大数据:Elasticsearch集成
  • 连接字符串:配置数据源连接
  • 查询优化:预聚合与筛选

Server-Side Pivot Engine

服务器端数据透视引擎

📄 Read: references/server-side-pivot-engine.md
  • Server-side processing: Delegate aggregation to backend server
  • ASP.NET Core setup: Download and configure PivotController application
  • Angular client configuration: Set mode: 'Server' with server endpoint URL
  • Data sources: Collection, JSON, CSV, DataTable, Dynamic objects
  • Virtual scrolling: Handle 100K+ rows efficiently
  • Excel/CSV export: Export processed data to files
  • Security: Add authentication headers with beforeServiceInvoke event
📄 阅读: references/server-side-pivot-engine.md
  • 服务器端处理:将聚合操作委托给后端服务器
  • ASP.NET Core设置:下载并配置PivotController应用
  • Angular客户端配置:设置mode: 'Server'并配置服务器端点URL
  • 数据源:集合、JSON、CSV、DataTable、动态对象
  • 虚拟滚动:高效处理10万+行数据
  • Excel/CSV导出:将处理后的数据导出为文件
  • 安全性:通过beforeServiceInvoke事件添加身份验证标头

Performance Optimization

性能优化

📄 Read: references/performance-optimization.md
  • Virtual scrolling: Enable with
    enableVirtualization: true
    for 100K+ rows
  • Single page mode: Use
    allowSinglePage: true
    for better performance
  • Paging: Configure with
    pageSettings
    for row/column pagination
  • Data compression: Enable
    allowDataCompression: true
    for duplicate record summarization
  • Deferred updates: Use
    allowDeferLayoutUpdate: true
    to batch field operations
  • Large dataset handling: Server-side processing with
    mode: 'Server'
  • Best practices: Pre-filtering, optimized sorting, member filtering limits, avoiding built-in grouping
📄 阅读: references/performance-optimization.md
  • 虚拟滚动:为10万+行数据启用
    enableVirtualization: true
  • 单页模式:使用
    allowSinglePage: true
    提升性能
  • 分页:使用
    pageSettings
    配置行/列分页
  • 数据压缩:启用
    allowDataCompression: true
    汇总重复记录
  • 延迟更新:使用
    allowDeferLayoutUpdate: true
    批量处理字段操作
  • 大数据集处理:使用
    mode: 'Server'
    进行服务器端处理
  • 最佳实践:预筛选、优化排序、成员筛选限制、避免内置分组

State Persistence & Hyperlinks

状态持久化与超链接

📄 Read: references/state-persistence-hyperlinks.md
  • State persistence: Save and restore pivot configuration
  • Local storage: Store report state in browser
  • Report export/import: JSON format serialization
  • Hyperlinks: Enable clickable hyperlinks in cells
  • Hyperlink events: Respond to hyperlink clicks
  • Hyperlink customization: Set targets and formatting

📄 阅读: references/state-persistence-hyperlinks.md
  • 状态持久化:保存和恢复数据透视配置
  • 本地存储:在浏览器中存储报表状态
  • 报表导出/导入:JSON格式序列化
  • 超链接:在单元格中启用可点击的超链接
  • 超链接事件:响应超链接点击
  • 超链接自定义:设置目标和格式

Quick Start Example

快速开始示例

typescript
import { PivotViewAllModule, PivotChartService } from '@syncfusion/ej2-angular-pivotview';
import { Component, OnInit, ViewChild } from '@angular/core';
import { PivotViewComponent, IDataSet } from '@syncfusion/ej2-angular-pivotview';

@Component({
  imports: [PivotViewAllModule],
  providers: [PivotChartService],
  standalone: true,
  selector: 'app-pivot-grid',
  template: `
    <ejs-pivotview #pivotview id='PivotView' 
      [dataSourceSettings]=dataSourceSettings
      [height]="'500px'"
      [width]="'100%'"
      [allowCalculatedField]="true" 
      [allowGrouping]="true"
      [allowConditionalFormatting]="true"
      [displayOption]="displayOption"
      [toolbar]="toolbarItems">
    </ejs-pivotview>
  `
})
export class AppComponent implements OnInit {
    @ViewChild('pivotview') pivotViewComponent!: PivotViewComponent;
    
    public pivotData!: IDataSet[];
    public dataSourceSettings: any;
    public displayOption: any;
    public toolbarItems: string[] = ['New', 'Save', 'SaveAs', 'Rename', 'Remove', 'Load',
                                      'Grid', 'Chart', 'Export', 'SubTotal', 'GrandTotal'];

    ngOnInit(): void {
        this.pivotData = [
            { 'Sold': 31, 'Amount': 52824, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q1' },
            { 'Sold': 51, 'Amount': 86904, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q2' },
            { 'Sold': 90, 'Amount': 153360, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q3' },
            { 'Sold': 25, 'Amount': 42500, 'Country': 'France', 'Products': 'Road Bikes', 'Year': 'FY 2015', 'Quarter': 'Q1' },
            { 'Sold': 40, 'Amount': 68000, 'Country': 'Germany', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q2' }
        ];

        // Display both grid and chart with grid as primary view
        this.displayOption = { view: 'Both', primary: 'Table' };

        this.dataSourceSettings = {
            dataSource: this.pivotData,
            expandAll: false,
            rows: [{ name: 'Country' }, { name: 'Products' }],
            columns: [{ name: 'Year' }, { name: 'Quarter' }],
            values: [
                { name: 'AvgAmount', type: 'CalculatedField' },
                { name: 'Sold', type: 'Count' }
            ],
            calculatedFieldSettings: [
                {
                    name: 'AvgAmount',
                    formula: '"Sum(Amount)"/"Count(Sold)"'  // Calculated field: Average
                }
            ],
            formatSettings: [
                { name: 'Amount', format: 'C2' },             // Currency format
                { name: 'AvgAmount', format: 'C2' }           // Format calculated field
            ],
            conditionalFormatSettings: [
                {
                    measure: 'Amount',
                    value1: 50000,
                    value2: 100000,
                    condition: 'Between',
                    style: { backgroundColor: '#FFE5CC', color: 'black' }
                }
            ]
        };
    }
}

typescript
import { PivotViewAllModule, PivotChartService } from '@syncfusion/ej2-angular-pivotview';
import { Component, OnInit, ViewChild } from '@angular/core';
import { PivotViewComponent, IDataSet } from '@syncfusion/ej2-angular-pivotview';

@Component({
  imports: [PivotViewAllModule],
  providers: [PivotChartService],
  standalone: true,
  selector: 'app-pivot-grid',
  template: `
    <ejs-pivotview #pivotview id='PivotView' 
      [dataSourceSettings]=dataSourceSettings
      [height]="'500px'"
      [width]="'100%'"
      [allowCalculatedField]="true" 
      [allowGrouping]="true"
      [allowConditionalFormatting]="true"
      [displayOption]="displayOption"
      [toolbar]="toolbarItems">
    </ejs-pivotview>
  `
})
export class AppComponent implements OnInit {
    @ViewChild('pivotview') pivotViewComponent!: PivotViewComponent;
    
    public pivotData!: IDataSet[];
    public dataSourceSettings: any;
    public displayOption: any;
    public toolbarItems: string[] = ['New', 'Save', 'SaveAs', 'Rename', 'Remove', 'Load',
                                      'Grid', 'Chart', 'Export', 'SubTotal', 'GrandTotal'];

    ngOnInit(): void {
        this.pivotData = [
            { 'Sold': 31, 'Amount': 52824, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q1' },
            { 'Sold': 51, 'Amount': 86904, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q2' },
            { 'Sold': 90, 'Amount': 153360, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q3' },
            { 'Sold': 25, 'Amount': 42500, 'Country': 'France', 'Products': 'Road Bikes', 'Year': 'FY 2015', 'Quarter': 'Q1' },
            { 'Sold': 40, 'Amount': 68000, 'Country': 'Germany', 'Products': 'Mountain Bikes', 'Year': 'FY 2015', 'Quarter': 'Q2' }
        ];

        // Display both grid and chart with grid as primary view
        this.displayOption = { view: 'Both', primary: 'Table' };

        this.dataSourceSettings = {
            dataSource: this.pivotData,
            expandAll: false,
            rows: [{ name: 'Country' }, { name: 'Products' }],
            columns: [{ name: 'Year' }, { name: 'Quarter' }],
            values: [
                { name: 'AvgAmount', type: 'CalculatedField' },
                { name: 'Sold', type: 'Count' }
            ],
            calculatedFieldSettings: [
                {
                    name: 'AvgAmount',
                    formula: '"Sum(Amount)"/"Count(Sold)"'  // Calculated field: Average
                }
            ],
            formatSettings: [
                { name: 'Amount', format: 'C2' },             // Currency format
                { name: 'AvgAmount', format: 'C2' }           // Format calculated field
            ],
            conditionalFormatSettings: [
                {
                    measure: 'Amount',
                    value1: 50000,
                    value2: 100000,
                    condition: 'Between',
                    style: { backgroundColor: '#FFE5CC', color: 'black' }
                }
            ]
        };
    }
}

Common Patterns

常见模式

Pattern 1: Multiple Fields with Different Aggregation Types

模式1:使用不同聚合类型的多字段

Each field supports only ONE aggregation type. To analyze different aspects, use different fields with their respective aggregation functions:
typescript
values: [
    { name: 'Amount', type: 'Sum' },      // Total sales amount
    { name: 'Quantity', type: 'Avg' },    // Average quantity sold
    { name: 'Sold', type: 'Count' },      // Number of transactions
    { name: 'Price', type: 'Min' },       // Minimum price
]
Note: Each field in the values array can only have ONE type. To get multiple aggregation types for analysis, use different fields or create calculated fields combining aggregations.
每个字段仅支持一种聚合类型。如需分析不同维度,请使用不同字段并配置各自的聚合函数:
typescript
values: [
    { name: 'Amount', type: 'Sum' },      // Total sales amount
    { name: 'Quantity', type: 'Avg' },    // Average quantity sold
    { name: 'Sold', type: 'Count' },      // Number of transactions
    { name: 'Price', type: 'Min' },       // Minimum price
]
注意: 值数组中的每个字段只能设置一种类型。如需通过多种聚合类型进行分析,请使用不同字段或创建组合聚合的计算字段。

Pattern 2: Hierarchical Grouping

模式2:层次化分组

Organize data with multi-level grouping:
typescript
rows: [
    { name: 'Country' },    // Primary level
    { name: 'Region' },     // Secondary level
    { name: 'City' }        // Tertiary level
],
columns: [
    { name: 'Year' },       // Year level
    { name: 'Quarter' }     // Quarter level
]
通过多级分组组织数据:
typescript
rows: [
    { name: 'Country' },    // Primary level
    { name: 'Region' },     // Secondary level
    { name: 'City' }        // Tertiary level
],
columns: [
    { name: 'Year' },       // Year level
    { name: 'Quarter' }     // Quarter level
]

Pattern 4: Number Range Grouping

模式4:数值范围分组

Group numeric fields into ranges:
typescript
groupSettings: [
    {
        name: 'ProductID',
        type: 'Number',
        rangeInterval: 5,
        startingAt: 1000,
        endingAt: 1010
    }
]
将数值字段分组为范围:
typescript
groupSettings: [
    {
        name: 'ProductID',
        type: 'Number',
        rangeInterval: 5,
        startingAt: 1000,
        endingAt: 1010
    }
]

Pattern 5: Date Hierarchy Grouping

模式5:日期层次分组

Organize dates with time-based hierarchies:
typescript
groupSettings: [
    {
        name: 'OrderDate',
        type: 'Date',
        groupInterval: ['Years', 'Months'],  // Year then month hierarchy
        startingAt: new Date(2020, 0, 1),
        endingAt: new Date(2023, 11, 31)
    }
]

按时间层次组织日期:
typescript
groupSettings: [
    {
        name: 'OrderDate',
        type: 'Date',
        groupInterval: ['Years', 'Months'],  // Year then month hierarchy
        startingAt: new Date(2020, 0, 1),
        endingAt: new Date(2023, 11, 31)
    }
]

Key Configuration Properties

关键配置属性

PropertyTypePurpose
values
ArrayFields to aggregate with type (Sum, Avg, Count, CalculatedField, etc.)
type
StringAggregation type for value field (Sum, Avg, Count, Min, Max, etc.) or 'CalculatedField' for calculated fields
baseField
StringField reference for DifferenceFrom/Percentage comparisons
baseItem
StringSpecific member for base field comparisons
allowCalculatedField
BooleanEnable calculated field feature
calculatedFieldSettings
ArrayDefine calculated field name and formula
formula
StringMathematical expression for calculated field using aggregation functions
formatSettings
ArraySEPARATE array for number formatting (N, C, P) of values and calculated fields
allowGrouping
BooleanEnable grouping feature
groupSettings
ArrayConfigure number, date, or custom grouping
groupInterval
ArrayGrouping hierarchy (Years, Months, Days, etc.)
aggregateTypes
ArrayShow specific aggregation types in UI dropdown
showAggregationOnValueField
BooleanDisplay aggregation type in button text
Important: When adding calculated fields to values, use
type: 'CalculatedField'
to distinguish them from regular aggregations.

属性类型用途
values
数组要聚合的字段及类型(求和、平均值、计数、CalculatedField等)
type
字符串值字段的聚合类型(求和、平均值、计数、最小值、最大值等),或计算字段的'CalculatedField'
baseField
字符串差值/百分比比较的基准字段引用
baseItem
字符串基准字段的特定成员
allowCalculatedField
布尔值启用计算字段功能
calculatedFieldSettings
数组定义计算字段的名称和公式
formula
字符串使用聚合函数的计算字段数学表达式
formatSettings
数组用于值和计算字段数值格式(N、C、P)的单独数组
allowGrouping
布尔值启用分组功能
groupSettings
数组配置数值、日期或自定义分组
groupInterval
数组分组层次(年、月、日等)
aggregateTypes
数组在UI下拉菜单中显示特定聚合类型
showAggregationOnValueField
布尔值在按钮文本中显示聚合类型
重要提示:将计算字段添加到值数组时,请使用
type: 'CalculatedField'
以区分常规聚合字段。

Next Steps

后续步骤

Foundation (Start here):
  1. Read Getting Started for setup and initialization
  2. Read Aggregation to implement aggregation functions and base field aggregations
  3. Read Grouping to configure number, date, and custom grouping
Data Manipulation: 4. Read Calculated Fields for complex calculations and custom field formulas 5. Read Filtering & Sorting for label/value filtering and custom sorting 6. Read Data Formatting for number formats and conditional formatting
Visualization & Interaction: 7. Read Pivot Chart Integration for charting and drill operations 8. Read UI Customization for toolbars and custom interfaces 9. Read Drill-Down & Drill-Through for hierarchical data exploration
Advanced Features: 10. Read Export & Printing for multi-format export (Excel, PDF, CSV) 11. Read State Persistence for saving and restoring configurations 12. Read Database Connections for SQL/NoSQL/big data integration 13. Read Server-Side Pivot Engine for processing 100K+ rows on backend 14. Read Performance Optimization for large datasets, deferred updates, and virtual scrolling

基础(从此开始):
  1. 阅读入门指南进行设置和初始化
  2. 阅读数据聚合以实现聚合函数和基准字段聚合
  3. 阅读数据分组以配置数值、日期和自定义分组
数据操作: 4. 阅读计算字段以实现复杂计算和自定义字段公式 5. 阅读筛选与排序以实现标签/值筛选和自定义排序 6. 阅读数据格式以实现数值格式和条件格式
可视化与交互: 7. 阅读数据透视图集成以实现图表和钻取操作 8. 阅读UI自定义以实现工具栏和自定义界面 9. 阅读钻取与穿透以实现层次化数据探索
高级功能: 10. 阅读导出与打印以实现多格式导出(Excel、PDF、CSV) 11. 阅读状态持久化以实现配置的保存和恢复 12. 阅读数据库连接以实现SQL/NoSQL/大数据集成 13. 阅读服务器端数据透视引擎以在后端处理10万+行数据 14. 阅读性能优化以处理大数据集、延迟更新和虚拟滚动

Foundational References

基础参考

These files provide foundational knowledge and may be referenced by feature guides:
📄 references/core-concepts.md - Data binding types (JSON, CSV, OLAP), client-side vs server-side comparison, choosing appropriate data sources
📄 references/layout-and-columns.md - Classic layout, row/column sizing, column features, cell selection and customization
📄 references/field-list.md - Field list UI (popup/fixed modes), field organization, deferred updates patterns
这些文件提供基础知识,可能会被功能指南引用:
📄 references/core-concepts.md - 数据绑定类型(JSON、CSV、OLAP)、客户端与服务器端对比、选择合适的数据源
📄 references/layout-and-columns.md - 经典布局、行/列尺寸、列功能、单元格选择与自定义
📄 references/field-list.md - 字段列表UI(弹出/固定模式)、字段组织、延迟更新模式