SuperAPI AI 工具集

automating-excel

办公与效率

查看项目

更新于 10-16 04:14

技能介绍

Automating Excel 是一个面向 macOS 平台的 Excel 自动化技能,采用 JXA 优先、AppleScript 字典发现的方式。它与 macOS 自动化技能(automating-mac-apps)保持模式一致,但针对 Excel 独立使用;权限、shell 与 UI 脚本相关指导需参考 automating-mac-apps。若使用其中的 PyXA 示例,也需按 automating-mac-apps 技能中的 PyXA 安装说明进行安装。

核心定位 Excel 的 AppleScript 字典以 AppleScript 为先,建议使用 Script Editor 进行术语发现。JXA 是用于逻辑与数据处理的正式语言。集合(collections)属于 specifier,读取通过方法调用,写入通过赋值完成。Excel 操作中的错误应使用 try/catch 块与 Application 错误检查来处理。

默认工作流

  1. 在 Script Editor(Excel)中发现字典术语。
  2. 用 AppleScript 原型化一条最小命令。
  3. 移植到 JXA 并加入防御性检查。
  4. 对性能敏感场景使用批量读写(二维数组)。
  5. 当字典覆盖不足时,使用 VBA 的 run()。

验证步骤

  • 用空文档测试以验证错误处理。
  • 批量操作后验证数据完整性。
  • 自动化运行后检查 Excel UI 的响应性。
  • 记录错误时附带具体的 Excel 对象路径以便调试。

示例 基础工作簿读取: const Excel = Application('Microsoft Excel'); const workbook = Excel.workbooks[0]; const worksheet = workbook.worksheets['Sheet1']; const range = worksheet.ranges['A1:B10']; const data = range.value(); // 返回二维数组

带性能开关的批量写入: Excel.screenUpdating = false; Excel.calculation = 'manual'; try { const range = worksheet.ranges['C1:D100']; range.value = my2DArray; } finally { Excel.calculate(); Excel.screenUpdating = true; }

VBA 逃生通道: Excel.run('MyMacro', {arg1: 'value', arg2: 123}); // 调用 VBA 子程序

不适用场景

  • 与 Excel 无关的通用 macOS 自动化。
  • 仅用 AppleScript 即可满足(无需 JXA 逻辑)的情况。
  • 需要复杂 UI 交互的 Excel 任务(此类应使用 automating-mac-apps)。
  • 需要跨平台兼容性的场景。

可加载的参考文档

  • JXA Excel 基础:automating-excel/references/excel-basics.md
  • 配方(区域、二维数组、格式化):automating-excel/references/excel-recipes.md
  • 进阶模式(性能开关、VBA 桥接):automating-excel/references/excel-advanced.md
  • 透视表指南:automating-excel/references/excel-pivots.md
  • 图表指南:automating-excel/references/excel-charts.md
  • 字典对照表:automating-excel/references/excel-dictionary.md
  • PyXA(Python)替代方案:automating-excel/references/excel-pyxa.md