【免费下载链接】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.
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 Sales13 种聚合函数与自动小计
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条件格式化图层(渐变背景、按条件着色),做一张"队列分析表"毫无压力。
两条使用规则
- 一个字段只能出现在一个轴上——不能既做行又做列,否则会得到一张几乎空白的对角线表;
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.
相关推荐
GDM Settings 快速入门:5分钟学会美化你的登录界面
GDM Settings 快速入门:5分钟学会美化你的登录界面 GDM Settings 是一款专为 GNOME 桌面环境设计的登录界面自定义工具,让你轻松定制
iOS Swift 可折叠表格区域教程
iOS Swift 可折叠表格区域教程 项目介绍 本教程基于GitHub上的开源项目 ios swift collapsible table section h
Vue ECharts与Element Plus集成:在表格中嵌入迷你图表
Vue ECharts与Element Plus集成:在表格中嵌入迷你图表 痛点与解决方案 在数据可视化开发中,你是否遇到过以下问题: 表格数据枯燥乏味,关键指
前端图表库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考