news 2026/10/27 1:50:47

DAC 高级表格:透视表、迷你图与可折叠列组,在表格里挖出洞察

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DAC 高级表格:透视表、迷你图与可折叠列组,在表格里挖出洞察

【免费下载链接】dac

DaC is a dashboard-as-code tool. Build interactive dashboards using YAML and JSX. Built-in semantic layer. Get your agents to build standardized, reviewable dashboards.

项目地址:https://gitcode.com/gh_mirrors/dac18/dac
点击查看免费下载

DAC 是一款 Dashboard-as-Code 仪表盘工具,用 YAML 定义可视化,内置语义层。本文介绍 DAC 表格组件的三大高级能力:透视表(pivot_table)、迷你趋势图(sparkline)与可折叠列组(column groups),帮助你把宽表和流水数据直接变成可交互的洞察视图。

为什么表格也能"挖出洞察" 📊

多数仪表盘工具里,表格只承担"原始明细"的角色,交叉分析靠图表、趋势靠折线图。而 DAC 的表格组件table与pivot_table自带三项进阶能力,让一张表同时完成三件事:

能力解决的问题关键配置
透视表行维度 × 列维度的交叉汇总pivot.rows / columns / values
迷你图每行内嵌一段趋势曲线列上type: sparkline
可折叠列组宽表按主题收起,只看摘要列上group+collapsed

完整字段说明见官方文档 docs/dashboards/widgets.md,示例项目可直接运行查看效果。

透视表:不改 SQL,把平铺结果转成交叉表

DAC 的透视表组件type: pivot_table在前端把查询返回的平铺行重新组织成电子表格风格:rows是行方向的分组,columns把不同值横向铺开,values是要汇总的度量。SQL 一行都不用改,透视发生在返回结果之上。

- name: Sales by Region and Product type: pivot_table sql: SELECT region, product, sales FROM orders pivot: rows: - { field: region, order: asc, showTotals: true } columns: - { field: product } values: - field: sales summarize: sum label: Total Sales

13 种聚合函数与自动小计

values的summarize支持 13 种聚合:sum、counta、count、countunique、average、max、min、median、product、stdev、stdevp、var、varp,默认是sum。

小计逻辑藏在showTotals里,非常省事:

  • 外层层级开启showTotals→ 每个分组自动加一行小计(如East Total);
  • 最内层层级开启 → 追加整体的 Grand Total 行。

列方向同理,可以自动生成 Grand Total 列。透视的分组、小计与总计都在 frontend/src/components/widgets/pivot.ts 中实现,每个度量列还可以挂format条件格式化图层(渐变背景、按条件着色),做一张"队列分析表"毫无压力。

两条使用规则

  1. 一个字段只能出现在一个轴上——不能既做行又做列,否则会得到一张几乎空白的对角线表;
  2. values不能为空,没有度量的透视表不会渲染。

迷你图:单元格里的趋势线

想让每行自带一段走势?给表格列设置type: sparkline,单元格里的数组就会渲染成一条 60px 高的小趋势线,鼠标悬停还能看到每个点的坐标:

columns: - name: trend label: 7-day revenue type: sparkline x: { field: date, type: date, format: "%b %d" } y: { field: revenue, type: number, format: "$,.0f" }

几个实用细节:

  • 同列共享 Y 轴范围——所有迷你图用同一比例尺,行间高低一目了然;
  • 最多采样 100 个点,兼容对象数组、[x, y]数组对,甚至数据库返回的 JSON 数组字符串;
  • y.beginAtZero: true可把基线锚定在 0,避免视觉夸大;
  • 导出 Slides 时,会自动写入每条迷你图的最后一个值。

解析与容错逻辑见 frontend/src/components/widgets/sparkline.ts。仓库里有一个完整示例 examples/basic-yaml/dashboards/sparkline-table.yml,其中 Atlas、Beacon 等账户的 7 天营收趋势可以直接对比。

可折叠列组:宽表的"收纳盒"

财务报表动辄十几列,DAC 允许把连续的列打上同一个group名字,形成一个可折叠的块:

columns: - { name: region, frozen: true } - { name: profit, number: currency, group: financials, collapsed: true } - { name: revenue, number: currency, group: financials } - { name: cost, number: currency, group: orders }

效果如下:

  • 表头出现+/−按钮,点击即可收起/展开明细列;
  • 每组的第一列是摘要列,折叠后始终保留(上例中profit就是financials组的摘要);
  • collapsed: true设置默认收起状态,frozen: true可把整块冻结在左侧随横向滚动固定;
  • 每个块的展开状态独立保存在浏览器本地,同事下次打开还能恢复你的偏好;
  • 复用同名group会生成独立的块,如financials → orders → financials是两个互不影响的financials组。

参考实现见 frontend/src/components/widgets/columnGroups.ts,示例文件 examples/basic-yaml/dashboards/column-groups.yml 演示了两个financials块被orders块隔开的效果。注意:列组仅适用于普通table,pivot_table不支持。

上手步骤与实用提示 ✅

三步跑起来:

dac init my-dashboards cd my-dashboards dac serve --dir . --open

实用提示:

  • 表格列支持number格式化(currency、number或 d3-format 字符串)与format条件着色,条件判断"先命中先生效",把通配规则放在最后;
  • hidden: true的列不渲染但保留在结果里,可驱动跨列条件(如actual对比target),且会出现在 CSV 导出中;
  • 导出 CSV 时,透视表导出的是重排后的交叉表,列组导出的是完整查询结果,两者各有用途;
  • 行级过滤交给仪表盘级filters(会下推到 SQL),透视本身只负责"摆",过滤负责"筛"。

总结

DAC 的表格不只是明细展示:pivot_table用声明式配置完成交叉汇总与小计,sparkline列把趋势塞进单元格,可折叠列组让宽表可收纳、可记忆。三者都写在 YAML 里,随代码一起评审、版本化、复用——这正是 Dashboard-as-Code 的价值。想亲手体验,可从 examples/basic-yaml/ 下的sparkline-table.yml与column-groups.yml开始读起。

【免费下载链接】dac

DaC is a dashboard-as-code tool. Build interactive dashboards using YAML and JSX. Built-in semantic layer. Get your agents to build standardized, reviewable dashboards.

项目地址:https://gitcode.com/gh_mirrors/dac18/dac
点击查看免费下载
上一篇:Harbor 网络策略矩阵实战:用 `[verifier.environment]` 构建「Agent 断网 + Verifier 独立公网」的隔离评测任务
下一篇:在浏览器里直接给视频加字幕:ffmpeg-webCLI Whisper AI自动字幕完整教程(零上传、3档模型)

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 1:50:44

黑苹果免手写config:OpCore-Simplify 从硬件报告到EFI产物怎么跑通

黑苹果免手写config:OpCore-Simplify 从硬件报告到EFI产物怎么跑通 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 装黑苹果最耗时间的不是…

作者头像 李华
网站建设 2026/10/27 1:50:32

小程序商城系统排行榜怎么选?实体店商家要看另一份名单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:49:48

从点击到卸载:DeepSeek Harness Desktop 插件市场的信任链一次讲清

从点击到卸载:DeepSeek Harness Desktop 插件市场的信任链一次讲清 【免费下载链接】deepseek-harness-desktop 为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。 项目地址: https://gitcode.co…

作者头像 李华
网站建设 2026/10/27 1:49:32

这5类场景,最需要“说话人分离“

你有没有发现一个事:越是多人参与的录音,转写出来越没法直接用。 因为多人录音最大的问题不是"听不清",而是**“分不清谁在说”**。 今天就盘点一下,哪 5 类场景最离不开"说话人分离"(也就是自动把…

作者头像 李华