从结构化JSON生成精美的.xlsx工作簿,支持多工作表、冻结表头、筛选、类型化列、公式、合计以及法国/摩洛哥格式。
当代理必须交付 .xlsx Excel 文件时使用 —— 销售报告、查询结果、多表数据导出、财务摘要或任何需要抛光散射的结构化数据是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
当智能体必须交付一个 .xlsx Excel 文件时使用 —— 例如销售报表、查询结果、多工作表数据导出、财务汇总,或任何需要专业电子表格格式的结构化数据。本技能**仅支持工作簿创建**,不可用于读取、编辑或保留现有 Excel 文件。
python3 -m venv ~/.openclaw/workspace/.venv_excel ~/.openclaw/workspace/.venv_excel/bin/pip install xlsxwriter
无需凭证(credentials)。
~/.openclaw/workspace/.venv_excel/bin/python skills/excel-export/scripts/build_xlsx.py --input--output
默认导出目录:~/.openclaw/workspace/exports/excel/。
执行成功后,脚本将向标准输出(stdout)打印一份 JSON 汇总信息:
{
"success": true,
"output": "/absolute/path/to/report.xlsx",
"sheets": [
{ "sheet": "Ventes", "rows": 42 },
{ "sheet": "Charges", "rows": 18 }
]
}
输入为单个 JSON 文件,顶层结构如下:
{
"sheets": [ ... ]
}
每个工作表对象定义如下:
| 字段 | 是否必需 | 说明 |
|---|---|---|
name |
是 | 工作表标签名(最多 31 个字符) |
title |
否 | 位于表格上方的加粗标题行 |
subtitle |
否 | 位于标题下方的弱化副标题行 |
columns |
是 | 列定义数组 |
rows |
否 | 数据对象数组(各对象以 key 为键) |
每个列对象定义如下:
| 字段 | 是否必需 | 说明 |
|---|---|---|
key |
是 | 该列对应数据行对象中的键名 |
header |
是 | 表格中显示的列头文本 |
type |
否 | 数据类型(默认为 text),详见下表 |
width |
否 | 显式指定列宽(将覆盖自动估算值) |
numfmt |
否 | 自定义 Excel 数字格式(将覆盖类型默认格式) |
formula |
否 | Excel 表格结构化引用公式(structured-reference formula) |
total |
否 | 汇总行函数:sum、average 或 count |
数据行(rows)是**以列 key 为键的对象(object)**,而非位置索引数组(positional array)。缺失的键将生成空白单元格;出现未知键则触发校验错误。
| 类型 | 默认格式 | 说明 |
|---|---|---|
text |
— | 始终以文本形式存储 |
integer |
#,##0 |
四舍五入为整数 |
number |
#,##0.00 |
保留两位小数 |
percent |
0.0% |
传入 0.15 表示 15 % |
currency |
#,##0.00 "MAD" |
默认为摩洛哥迪拉姆(MAD) |
date |
dd/mm/yyyy |
接受 YYYY-MM-DD 格式字符串 |
datetime |
dd/mm/yyyy hh:mm |
接受 ISO 8601 格式字符串 |
boolean |
— | 渲染为 Oui / Non |
可在任意列上使用 numfmt 字段,以覆盖其类型对应的默认格式。
布局 — 固定、确定性、不可按工作表单独配置:
冻结窗格 — 始终冻结在首行数据行(根据是否存在标题,对应 A2、A4 或 A5)。
表格样式 — 每个工作表均为一个矩形 Excel 表格:启用筛选器、斑马纹行(banded rows),并应用样式 Table Style Medium 9。
列宽 — 自动基于列头和采样值估算,上限为 50 字符;若列定义中指定了 width,则优先采用该显式值。
公式 — 使用 Excel 结构化引用(如 =[@Revenue]/SUM([Revenue]))。公式列通过表格定义注入,而非逐单元格写入,因此会自动应用于所有数据行。
汇总行 — 若任一列设置了 total,则表格将包含汇总行。第一列默认显示 “Total” 标签,除非该列自身也定义了 total 函数。
空数据集 — 将生成一个合法的工作簿,包含表头、筛选器、样式,但数据行为零。
以下规则强制执行,不可跳过或禁用:
保留原始数据类型。 带前导零的字符串、电话号码(如 +212…)、长度超过 15 位的数字字符串,一律以文本形式存储。若作为数字写入 Excel,将被静默损坏。
计算逻辑保留在 Excel 中。 当工作簿需保持可交互状态时,应写入公式而非 Python 预计算的静态值。使用结构化引用,确保公式在插入/删除行后仍有效。
日期必须显式处理。 Excel 日期本质为带历史兼容问题的序列号。本脚本写入真实的日期对象,并显式应用 dd/mm/yyyy 格式 — 绝不写入原始序列号或歧义字符串。
交付前严格校验。 脚本对每个输入字段进行校验,拒绝未知键,并在出错时快速失败、给出清晰错误信息。工作簿绝不可因静默丢数而发布。
区域默认设置为法语 / 摩洛哥。 日期格式为 dd/mm/yyyy,货币单位为 MAD,布尔值显示为 Oui / Non。注意:最终显示效果仍部分取决于用户本地 Excel 的区域设置。
{
"sheets": [
{
"name": "Ventes Q1",
"title": "Rapport des Ventes — Q1 2026",
"subtitle": "Direction Commerciale",
"columns": [
{ "key": "region", "header": "Région", "type": "text" },
{ "key": "ca", "header": "CA (MAD)", "type": "currency", "total": "sum" },
{ "key": "volume", "header": "Volume", "type": "integer", "total": "sum" },
{ "key": "growth", "header": "Croissance", "type": "percent" },
{ "key": "date", "header": "Date", "type": "date" },
{ "key": "active", "header": "Actif", "type": "boolean" }
],
"rows": [
{ "region": "Casablanca", "ca": 1250000, "volume": 340, "growth": 0.15, "date": "2026-03-31", "active": true },
{ "region": "Rabat", "ca": 980000, "volume": 210, "growth": -0.03, "date": "2026-03-31", "active": true },
{ "region": "Tanger", "ca": 670000, "volume": 155, "growth": 0.08, "date": "2026-03-31", "active": false }
]
}
]
}
~/.openclaw/workspace/.venv_excel/bin/python skills/excel-export/scripts/build_xlsx.py --input ~/.openclaw/workspace/exports/ventes_q1.json --output ~/.openclaw/workspace/exports/excel/ventes_q1.xlsx
脚本将在以下情况中快速失败,并输出明确错误信息:
[ ] : * ? / 字符,或以单引号(')开头/结尾subtitle 但未提供 titletype 或 total 值非法formula 定义非字符串类型true/false、1/0、yes/no、oui/non)integer 列中出现非整数值(例如 12.9 将被拒绝,而非截断)若从 SQL 查询结果生成 Excel 文件,请阅读 references/SQL_TO_EXCEL_RECIPE.md 中的标准流水线文档:使用 mssql 执行查询 → 规范化数据值 → 构建 JSON 规格 → 渲染输出。该文档涵盖 SQL 到 JSON 的类型映射、规范化规则、开箱即用模板及常见错误。
xlsxwriter 不执行公式计算;接收方 Excel 客户端在打开文件时重新计算。相关专题
热门下载
相关下载
精品课程
共162课时 | 43.4万人学习
共15课时 | 1.8万人学习
共28课时 | 3.5万人学习