You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AppleScript转Excel为Numbers报错:Numbers不识别save命令

解决AppleScript转换Excel到Numbers时的Save命令错误

嘿,我之前也碰到过Numbers的AppleScript语法坑,你的问题主要出在save命令的调用逻辑和格式指定上,我帮你梳理下并给出修正方案:

问题根源

  1. 你把save命令放在了tell thisDocument块里,但Numbers的文档对象并不直接支持这种调用方式,保存操作得由Numbers应用程序来处理。
  2. 没有明确指定保存格式为Numbers文档,导致Numbers无法正确解析指令,进而抛出了奇怪的remove id...错误。

修正后的脚本

tell application "Numbers"
    -- 定义源Excel文件的HFS路径(冒号分隔格式)
    set sourceFilePath to alias "Macintosh HD:Users:admin:numbers-FATP.xls"
    -- 打开Excel文件,返回对应的Numbers文档对象
    set targetDoc to open sourceFilePath
    
    -- 定义保存路径,直接指定.numbers文件名即可
    set saveFilePath to file "Macintosh HD:Users:admin:NumbersTest.numbers"
    
    -- 由Numbers应用执行保存操作,明确指定保存格式为Numbers文档
    save targetDoc in saveFilePath as Numbers document
    
    -- 关闭文档,加上without saving避免重复弹出保存提示
    close targetDoc without saving
end tell

额外注意事项

  • 路径写法优化:如果你觉得HFS的冒号路径容易写错,可以改用更直观的POSIX路径转alias,示例:
    set sourceFilePath to POSIX file "/Users/admin/numbers-FATP.xls" as alias
    
  • 权限检查:确保当前用户对/Users/admin目录有写入权限,否则会出现保存失败的权限错误。
  • 版本兼容:新版本Numbers建议明确指定Numbers document作为保存格式,避免格式识别混淆。

内容的提问来源于stack exchange,提问作者Carlos

火山引擎 最新活动