Install
$ agentstack add skill-bwkyd-wps-skills-wps-data-viz ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
数据可视化仪表盘
数据 → KPI卡片 + 趋势图 + 占比图 → 一页式数据概览。
> 不用Power BI,Excel也能做出专业仪表盘。
When to Use
- 制作数据概览/仪表盘
- 月度/季度数据一页展示
- KPI指标可视化
- 用户说"做个数据仪表盘""数据大屏"
When NOT to Use
- 单个图表 → 使用
wps-chart - 数据透视分析 → 使用
wps-pivot
仪表盘布局
┌─────────┬─────────┬─────────┬─────────┐
│ KPI 1 │ KPI 2 │ KPI 3 │ KPI 4 │
│ 总收入 │ 订单数 │ 客单价 │ 转化率 │
│ ¥125万 │ 3,456 │ ¥362 │ 4.2% │
│ ↑12.5% │ ↑8.3% │ ↓2.1% │ ↑0.5% │
├─────────┴─────────┼─────────┴─────────┤
│ │ │
│ 收入趋势折线图 │ 品类占比饼图 │
│ (12个月) │ │
│ │ │
├────────────────────┼────────────────────┤
│ │ │
│ TOP10产品柱状图 │ 地区分布表格 │
│ │ │
└────────────────────┴────────────────────┘
工作流程
Step 1: 确认仪表盘要素
- KPI指标:需要展示哪些关键数字
- 趋势图:哪些数据看趋势
- 占比图:哪些数据看构成
- 排名表:哪些数据看排名
- 数据源:数据在哪里
Step 2: 生成仪表盘
from openpyxl import Workbook
from openpyxl.chart import BarChart, LineChart, PieChart, Reference
from openpyxl.chart.label import DataLabelList
from openpyxl.styles import Font, Alignment, PatternFill, Border, Side
from openpyxl.utils import get_column_letter
import os
def create_dashboard(kpis, charts_data, output_path=None):
"""
kpis = [
{'name': '总收入', 'value': '¥125万', 'change': '+12.5%', 'trend': 'up'},
{'name': '订单数', 'value': '3,456', 'change': '+8.3%', 'trend': 'up'},
]
charts_data = {
'trend': {'labels': [...], 'values': [...]},
'pie': {'labels': [...], 'values': [...]},
'bar': {'labels': [...], 'values': [...]},
}
"""
wb = Workbook()
ws = wb.active
ws.title = "数据仪表盘"
ws.sheet_properties.tabColor = '2C3E50'
# 隐藏网格线
ws.sheet_view.showGridLines = False
# KPI卡片
kpi_colors = ['3498DB', '2ECC71', 'E74C3C', 'F39C12']
for i, kpi in enumerate(kpis[:4]):
col_start = i * 4 + 1
ws.merge_cells(start_row=2, start_column=col_start,
end_row=2, end_column=col_start + 3)
ws.merge_cells(start_row=3, start_column=col_start,
end_row=3, end_column=col_start + 3)
ws.merge_cells(start_row=4, start_column=col_start,
end_row=4, end_column=col_start + 3)
color = kpi_colors[i % len(kpi_colors)]
fill = PatternFill('solid', fgColor=color)
# 指标名
cell = ws.cell(row=2, column=col_start, value=kpi['name'])
cell.font = Font(name='微软雅黑', size=11, color='FFFFFF')
cell.fill = fill
cell.alignment = Alignment(horizontal='center')
# 指标值
cell = ws.cell(row=3, column=col_start, value=kpi['value'])
cell.font = Font(name='微软雅黑', size=22, bold=True, color='FFFFFF')
cell.fill = fill
cell.alignment = Alignment(horizontal='center')
# 变化
arrow = '↑' if kpi.get('trend') == 'up' else '↓'
cell = ws.cell(row=4, column=col_start,
value=f'{arrow} {kpi["change"]}')
cell.font = Font(name='微软雅黑', size=10, color='FFFFFF')
cell.fill = fill
cell.alignment = Alignment(horizontal='center')
# 数据区域(隐藏,供图表引用)
data_start_row = 30
if 'trend' in charts_data:
td = charts_data['trend']
for i, label in enumerate(td['labels']):
ws.cell(row=data_start_row + i, column=1, value=label)
ws.cell(row=data_start_row + i, column=2, value=td['values'][i])
chart = LineChart()
chart.title = "趋势"
chart.width = 20
chart.height = 12
chart.style = 10
data = Reference(ws, min_col=2, min_row=data_start_row,
max_row=data_start_row + len(td['labels']) - 1)
cats = Reference(ws, min_col=1, min_row=data_start_row,
max_row=data_start_row + len(td['labels']) - 1)
chart.add_data(data)
chart.set_categories(cats)
ws.add_chart(chart, 'A6')
if 'pie' in charts_data:
pd = charts_data['pie']
for i, label in enumerate(pd['labels']):
ws.cell(row=data_start_row + i, column=4, value=label)
ws.cell(row=data_start_row + i, column=5, value=pd['values'][i])
chart = PieChart()
chart.title = "占比"
chart.width = 14
chart.height = 12
data = Reference(ws, min_col=5, min_row=data_start_row,
max_row=data_start_row + len(pd['labels']) - 1)
cats = Reference(ws, min_col=4, min_row=data_start_row,
max_row=data_start_row + len(pd['labels']) - 1)
chart.add_data(data)
chart.set_categories(cats)
chart.dataLabels = DataLabelList()
chart.dataLabels.showPercent = True
ws.add_chart(chart, 'I6')
if not output_path:
output_path = '数据仪表盘.xlsx'
wb.save(output_path)
return os.path.abspath(output_path)
Step 3: 交付
- 生成仪表盘Excel(一页展示)
- KPI卡片 + 多图表组合
- 说明如何更新数据(修改数据区域自动刷新图表)
示例
# 销售仪表盘
/wps-data-viz 做一个销售数据仪表盘,KPI包括收入、订单、客单价、转化率
# 从数据生成
/wps-data-viz 用sales_2025.xlsx做一个年度数据概览仪表盘
# 运营仪表盘
/wps-data-viz 做个运营数据看板:DAU、MAU、留存率、付费率
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Bwkyd
- Source: Bwkyd/wps-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.