@canvas-components/react-pivot-table

中文文档
0.2.64发布于 2026/11/09MITTypeScriptESM + CJS近 30 天下载 6928

用于焦表核心引擎的回放适配器.

中文使用文档
文档目录11 节
  1. 示例效果
  2. 功能作用
  3. 安装方法
  4. 使用方法
  5. 属性说明
  6. ReactPivotTableProps
  7. 统一切换调试模式
  8. ReactPivotTableCustomizationOptions
  9. 实例方法
  10. XLSX 导出弹窗
  11. 推荐场景

@canvas-components/react-pivot-table

@canvas-components/react-pivot-table 是 @canvas-components/pivot-table 的 React 适配层,在保留原生 Canvas 数据透视表性能的同时,提供标题栏、字段配置面板、图表联动和 React ref 接口。

示例效果

React Pivot Table 示例

功能作用

  • 提供 ReactPivotTable 组件
  • 支持行、列、指标的多层聚合与虚拟滚动
  • 支持字段面板配置和透视图表联动
  • 暴露选择、展开、筛选、排序、导出和状态快照方法
  • 聚合、布局和 Canvas 渲染复用纯原生 pivot-table 内核

安装方法

pnpm add @canvas-components/react-pivot-table @canvas-components/pivot-table react@^16.8 react-dom@^16.8

最低依赖版本:

  • react >= 16.8.0
  • react-dom >= 16.8.0
  • Node.js >= 18.12.0
  • pnpm >= 9.0.0

使用方法

import { ReactPivotTable } from "@canvas-components/react-pivot-table";

interface SalesRecord {
  region: string;
  city: string;
  year: number;
  sales: number;
}

export function SalesPivotTable(props: { data: SalesRecord[] }) {
  return (
    <div style={{ width: "100%", height: 560 }}>
      <ReactPivotTable<SalesRecord>
        title="销售数据透视表"
        dataSource={props.data}
        rows={[
          { key: "region", title: "区域", dataIndex: "region" },
          { key: "city", title: "城市", dataIndex: "city" },
        ]}
        columns={[{ key: "year", title: "年份", dataIndex: "year" }]}
        indicators={[
          {
            key: "sales",
            title: "销售额",
            dataIndex: "sales",
            aggregator: "sum",
          },
        ]}
        totals={{
          showRowSubtotals: true,
          showColumnGrandTotal: true,
          showRowGrandTotal: true,
        }}
      />
    </div>
  );
}

属性说明

ReactPivotTableProps

ReactPivotTableProps 继承自 PivotTableOptions,并增加 React 宿主相关属性。

属性类型说明
classNamestring根节点类名
styleCSSProperties根节点样式
titleReactNode标题栏内容
customizationboolean | ReactPivotTableCustomizationOptions是否启用字段配置面板及其配置

其余 dataSource、rows、columns、indicators、totals、filters、sorts 和虚拟滚动等属性与 @canvas-components/pivot-table 保持一致。

统一切换调试模式

ReactPivotTableDebugProvider 可为后代中的全部 ReactPivotTable 同步开启核心调试模式,并保留每个表格自身的 debug 配置:

import {
  ReactPivotTable,
  ReactPivotTableDebugProvider,
} from "@canvas-components/react-pivot-table";

<ReactPivotTableDebugProvider enabled={debuggerEnabled}>
  <ReactPivotTable
    {...props}
    debug={{ showBodyBounds: false, logDrawCalls: true }}
  />
</ReactPivotTableDebugProvider>;

ReactPivotTableCustomizationOptions

属性类型说明
fieldsPivotField[]可参与透视配置的全部字段
openboolean受控字段面板开关
defaultOpenboolean非受控字段面板初始状态
layoutPivotFieldLayout受控字段区域布局
defaultLayoutPivotFieldLayout非受控字段区域初始布局
panelWidthnumber字段面板宽度
onOpenChange(open) => void面板开关变化回调
onLayoutChange(layout) => void字段区域布局变化回调
onFieldChange(field) => void字段配置变化回调

实例方法

通过 ReactPivotTableRef 可以访问以下能力:

  • 获取透视模型、可见行列节点和单元格明细记录
  • 读取或设置选择状态,并滚动到指定单元格
  • 展开、收起行列节点或全部节点
  • 设置维度筛选、维度排序和指标排序
  • 导出 CSV、XLSX
  • 获取和恢复版本化状态快照
  • 获取调试快照

XLSX 导出弹窗

右键导出 XLSX 使用与 ReactListTable 相同的导出弹窗和配置表,支持修改文件名(后缀固定)、勾选列、拖拽调整列顺序、数据升降序排序,以及选择是否导出汇总行。汇总支持方式、前缀、小数位数、取整方式和保留无效零;默认带入原表配置,不修改原表。

通过 exportOptions.fileName 指定默认名称,exportOptions.promptFileName: false 跳过弹窗。弹窗关闭后销毁配置表,配置表不提供右键菜单。原生 ref.exportXlsx() 仍是返回字节的接口,不触发弹窗。

推荐场景

  • React 数据分析后台
  • 大数据量多维聚合报表
  • 需要字段拖放配置或图表联动的数据透视场景
  • 需要原生 Canvas 性能和 React 组件用法的场景

版本与发布记录

@canvas-components/react-pivot-table 共发布 66 个版本,首次发布于 2026/08/19;过去 12 个月发布了 66 个版本。

版本发布日期距今
0.2.64latest2026/11/09今天
0.2.632026/11/09今天
0.2.622026/11/09今天
0.2.612026/11/063 天前
0.2.602026/11/054 天前
0.2.592026/11/054 天前

关于 @canvas-components/react-pivot-table 的常见问题

@canvas-components/react-pivot-table 是什么?

用于焦表核心引擎的回放适配器.

如何安装 @canvas-components/react-pivot-table?

在项目目录运行 npm install @canvas-components/react-pivot-table,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=16.8.0)、react-dom(>=16.8.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@canvas-components/react-pivot-table 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@canvas-components/react-pivot-table 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@canvas-components/react-pivot-table 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@canvas-components/react-pivot-table 可以商用吗?

@canvas-components/react-pivot-table 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@canvas-components/react-pivot-table 的下载量有多少?

根据 npm 官方下载统计,@canvas-components/react-pivot-table 在 2026/10/09 – 2026/11/07 这 30 天内被下载 6,928 次,日均约 231 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@canvas-components/react-pivot-table 还在维护吗?

最新版本 0.2.64 发布于 2026/11/09(今天);至今共发布 66 个版本,其中过去 12 个月发布了 66 个;首次发布于 2026/08/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。