办公文档
用 Deno 脚本程序化生成与修改 Excel…
当需要用代码生成 Excel 表格、填充品牌模板占位符、或从现有 XLSX 提取单元格/公式时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
用 Deno 脚本程序化生成与修改 Ex通用
解决思路
- 模板模式:先用 `deno run --allow-read scripts/analyze-template.ts <模板.xlsx>` 分析模板,输出 inventory.json,其中包含 sheet 列表、usedRange、每个单元格的 address/row/col/value/type/formula,以及所有 placeholders(tag、location、sheet、address)和 hasFormulas 标记。
- 模板模式:根据 inventory 创建 replacements.json,包含 textReplacements 数组(每项含 tag、value,可选 sheets 限定工作表、可选 range 限定单元格范围)和 cellUpdates 数组(每项含 sheet、address、value)。
- 模板模式:运行 `deno run --allow-read --allow-write scripts/generate-from-template.ts <模板.xlsx> replacements.json <输出.xlsx>` 生成结果。
- 从零模式:创建 spec.json,顶层可含 title、author,以及 sheets 数组;每个 sheet 支持 name、data(从 A1 开始的二维数组)、cells、rows、columns、merges、freezePane(如 "A2")、autoFilter(如 "A1:F10")。
- 从零模式:在 cells 中按 address 指定单元格,可设置 value、formula(不带 = 号,会自动添加)、format(如 "#,##0.00")、type("string"/"number"/"boolean"/"date")。
- 从零模式:在 columns 中按 col(大写列字母如 "A"、"AA")设置 width(字符宽度)和 hidden。
- 从零模式:运行 `deno run --allow-read --allow-write scripts/generate-scratch.ts spec.json <输出.xlsx>` 生成文件。
- 排查占位符未替换:用 analyze-template.ts 核对 tag 的精确文本与位置,确认占位符位于字符串单元格而非公式中,并检查 replacement 的 sheets 过滤条件。
- 排查公式显示为文本:确保 spec 中 formula 不以 "=" 开头,且单元格 type 未被强制为 "string"。
- 排查数字被存为文本:spec 中使用数值而非带引号的字符串;模板替换时若整个单元格就是占位符且替换值为数字,会自动转换。
- 排查列宽未生效:确认列字母为大写,且 columns 使用数组格式。
适用边界 · 注意事项
- 需要打开/查看表格、复杂数据透视表或图表、实时协作编辑时
- 处理旧版 .xls 或 .xlsb 格式时
- 需要 VBA 宏、条件格式或复杂样式时