Excel Export

Polar Sponsor
爱发电 赞助
.NET 9.0

从结构化JSON生成精美的.xlsx工作簿,支持多工作表、冻结表头、筛选、类型化列、公式、合计以及法国/摩洛哥格式。

当代理必须交付 .xlsx Excel 文件时使用 —— 销售报告、查询结果、多表数据导出、财务摘要或任何需要抛光散射的结构化数据

功能概述

当代理必须交付 .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 字段,以覆盖其类型对应的默认格式。

渲染规则

布局 — 固定、确定性、不可按工作表单独配置:

  • 无标题/副标题 → 表格表头位于第 1 行。
  • 仅有标题 → 标题位于第 1 行,第 2 行为空行,表头位于第 3 行。
  • 含标题 + 副标题 → 标题位于第 1 行,副标题位于第 2 行,第 3 行为空行,表头位于第 4 行。

冻结窗格 — 始终冻结在首行数据行(根据是否存在标题,对应 A2、A4 或 A5)。

表格样式 — 每个工作表均为一个矩形 Excel 表格:启用筛选器、斑马纹行(banded rows),并应用样式 Table Style Medium 9。

列宽 — 自动基于列头和采样值估算,上限为 50 字符;若列定义中指定了 width,则优先采用该显式值。

公式 — 使用 Excel 结构化引用(如 =[@Revenue]/SUM([Revenue]))。公式列通过表格定义注入,而非逐单元格写入,因此会自动应用于所有数据行。

汇总行 — 若任一列设置了 total,则表格将包含汇总行。第一列默认显示 “Total” 标签,除非该列自身也定义了 total 函数。

空数据集 — 将生成一个合法的工作簿,包含表头、筛选器、样式,但数据行为零。

数据完整性准则

以下规则强制执行,不可跳过或禁用:

  1. 保留原始数据类型。 带前导零的字符串、电话号码(如 +212…)、长度超过 15 位的数字字符串,一律以文本形式存储。若作为数字写入 Excel,将被静默损坏。

  2. 计算逻辑保留在 Excel 中。 当工作簿需保持可交互状态时,应写入公式而非 Python 预计算的静态值。使用结构化引用,确保公式在插入/删除行后仍有效。

  3. 日期必须显式处理。 Excel 日期本质为带历史兼容问题的序列号。本脚本写入真实的日期对象,并显式应用 dd/mm/yyyy 格式 — 绝不写入原始序列号或歧义字符串。

  4. 交付前严格校验。 脚本对每个输入字段进行校验,拒绝未知键,并在出错时快速失败、给出清晰错误信息。工作簿绝不可因静默丢数而发布。

  5. 区域默认设置为法语 / 摩洛哥。 日期格式为 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

校验规则

脚本将在以下情况中快速失败,并输出明确错误信息:

  • JSON 格式非法或缺失
  • 工作表名称重复
  • 工作表名称超过 31 字符、包含 [ ] : * ? / 字符,或以单引号(')开头/结尾
  • 存在 subtitle 但未提供 title
  • 行数超过 1,048,576 或列数超过 16,384
  • 行对象中存在未知键
  • type 或 total 值非法
  • formula 定义非字符串类型
  • 布尔值无法识别(仅接受 true/false、1/0、yes/no、oui/non)
  • integer 列中出现非整数值(例如 12.9 将被拒绝,而非截断)
  • 日期、日期时间或数值型列中存在无法解析的内容

基于 SQL 的导出

若从 SQL 查询结果生成 Excel 文件,请阅读 references/SQL_TO_EXCEL_RECIPE.md 中的标准流水线文档:使用 mssql 执行查询 → 规范化数据值 → 构建 JSON 规格 → 渲染输出。该文档涵盖 SQL 到 JSON 的类型映射、规范化规则、开箱即用模板及常见错误。

限制(v1 版)

  • 仅支持创建工作簿 — 不支持读取或编辑已有工作簿。
  • 不支持模板保留、合并单元格或条件格式。
  • 仅有一种固定视觉主题 — 不支持自定义配色系统。
  • 不支持 CSV 输入 — 上游步骤必须生成 JSON。
  • xlsxwriter 不执行公式计算;接收方 Excel 客户端在打开文件时重新计算。

相关专题

更多
Excel制作交互图表的方法 Excel交互式的图表教程大全
Excel制作交互图表的方法 Excel交互式的图表教程大全

Excel交互式图表可通过四种方法实现:一、用切片器控制数据透视图;二、结合下拉列表与INDEX-MATCH动态引用;三、用选项按钮绑定图表系列;四、利用动态命名区域配合OFFSET函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2026.01.04

1820

12

excel制作动态图表教程
excel制作动态图表教程

本专题整合了excel制作动态图表相关教程,阅读专题下面的文章了解更多详细教程。

2025.12.29

205

12

Excel图表制作全流程
Excel图表制作全流程

本专题整合了excel制作图表的相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.23

240

7

excel xls与xlsx的区别
excel xls与xlsx的区别

本专题整合了excel中xls与xlsx的区别,阅读专题下面的文章了解更多详细内容。

2025.12.23

357

10

excel 绝对值
excel 绝对值

本专题整合了excel绝对值相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.09

839

10

Excel如何制作一个动态交互式图表
Excel如何制作一个动态交互式图表

首先通过准备数据源并创建基础图表,再插入表单控件实现用户交互,接着使用INDEX公式提取对应数据,然后将图表数据源指向动态区域,最后优化布局与标题实现动态更新。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.11.28

1738

9

excel算方差教程
excel算方差教程

计算方差的步骤依次为:1. 计算平均值;2. 计算差异的平方;3. 求和平方值;4. 除以数据点数。想要了解更多相关内容,请阅读专题下面的文章。

2025.05.27

4049

13

怎么用excel制作标签
怎么用excel制作标签

用 Excel 制作标签,若为普通工作表标签,可右键单击标签选 “重命名” 来修改名称;选 “标签颜色” 设置颜色用于区分。若制作数据标签,比如地址标签,先在 Excel 整理好数据,再借助 Word 的邮件合并功能。在 Word 中依次操作:“邮件” 选项卡→“开始邮件合并”→“标签”,选好标签类型,导入 Excel 数据并设置格式,完成后打印 。

2025.04.14

6551

9

excel提取想要的数据
excel提取想要的数据

提取方法有很多种。直接定位:使用“定位”功能选择所需数据。筛选:根据条件筛选数据,显示满足条件的单元格。条件格式:突出显示满足特定条件的数据单元格。高级筛选:指定条件,将提取的数据粘贴到目标范围。公式:使用 index、if、sumif、countif 等函数从数据中提取值。vba 宏:编写脚本以自动提取数据,满足特定条件。

2025.01.08

5430

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 43.4万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.5万人学习