用途
XLSX Generator 用于以编程方式创建和操作 Excel XLSX 文件。当用户需要生成电子表格、修改 XLSX 模板、提取表格内容时可以使用本技能。它适合自动化电子表格生成工作流,例如报表、数据导出、财务报表,以及用动态内容填充品牌模板并保留格式。
不适用场景:用户只想打开或查看电子表格;需要复杂数据透视表或图表;处理旧版 .xls 格式;需要实时协作编辑。
主要能力
本技能提供两种操作模式:
- 模板模式:修改现有品牌模板。先分析模板以找出占位符和结构,再用实际值替换 {{PLACEHOLDERS}}。
- 从零生成模式:使用 JSON 规格文件从无到有创建电子表格。
脚本参考:
| 脚本 | 用途 | 权限 |
|---|---|---|
| analyze-template.ts | 从 XLSX 提取单元格、公式、占位符 | --allow-read |
| generate-from-template.ts | 替换模板中的占位符 | --allow-read --allow-write |
| generate-scratch.ts | 根据 JSON 规格创建 XLSX | --allow-read --allow-write |
使用方式
前置条件:安装 Deno(https://deno.land/);模板操作需要输入 XLSX 文件;从零生成需要 JSON 规格。
模式一:基于模板生成
第一步,分析模板,提取单元格清单以了解可替换内容:
deno run --allow-read scripts/analyze-template.ts financial-template.xlsx > inventory.json
输出 inventory.json 包含文件名、工作表数量、各工作表的行数、列数、已用范围、单元格列表(地址、行、列、值、类型、公式)、占位符列表以及是否含公式等信息。
第二步,创建替换规格 replacements.json,包含 textReplacements(tag、value、可选 sheets)和 cellUpdates(sheet、address、value)。
第三步,生成输出:
deno run --allow-read --allow-write scripts/generate-from-template.ts
financial-template.xlsx replacements.json output.xlsx
模式二:从零生成
第一步,创建规格 spec.json,可包含 title、author、sheets 等。
第二步,生成电子表格:
deno run --allow-read --allow-write scripts/generate-scratch.ts spec.json output.xlsx
规格参考
工作表选项:name(工作表名)、data(从 A1 开始的二维单元格值数组)、cells(单个单元格规格)、rows(基于行的数据规格)、columns(列宽和可见性设置)、merges(合并单元格范围)、freezePane(冻结窗格,如 "A2")、autoFilter(自动筛选范围,如 "A1:F10")。
单元格选项:address(单元格地址,如 "A1")、value(值,字符串/数字/布尔/null)、formula(不带 = 号的公式)、format(数字格式,如 "#,##0.00")、type(强制类型:string、number、boolean、date)。
列选项:col(列字母,如 "A"、"AA")、width(列宽,按字符数)、hidden(隐藏列)。
模板替换选项:tag(要查找的占位符,如 "{{TITLE}}")、value(替换值)、sheets(限定特定工作表)、range(限定单元格范围,如 "A1:D10")。
适用场景
- 月度销售报表:分析模板、创建替换数据、生成报表。
- 带公式的数据导出:创建含计算合计的电子表格。
- 多工作表工作簿:创建含摘要和明细工作表的文件。
常见问题与限制
常见问题:占位符未被替换时,可运行 analyze-template.ts 核实标签文本和位置,检查占位符是否在字符串单元格而非公式中,并验证替换规格中的工作表筛选。公式显示为文本时,确保规格中公式不以 "=" 开头(会自动添加),且单元格类型未被强制为 "string"。数字被格式化为文本时,使用数值而非带引号的字符串。列宽未应用时,确保列字母大写且列规格为数组格式。
限制:仅支持 XLSX,不支持旧版 .xls 或 .xlsb;无法创建或保留 VBA 宏;不支持原生图表创建;无法以编程方式创建数据透视表;单元格格式选项有限;无法设置条件格式规则;公式会被存储但不会重新计算(Excel 打开时重新计算)。
相关技能:pptx-generator(创建 PowerPoint 演示文稿)、docx-generator(创建 Word 文档)、csv-processor(更简单的 CSV 数据处理)。