AppleScript转Excel为Numbers报错:Numbers不识别save命令
解决AppleScript转换Excel到Numbers时的Save命令错误
嘿,我之前也碰到过Numbers的AppleScript语法坑,你的问题主要出在save命令的调用逻辑和格式指定上,我帮你梳理下并给出修正方案:
问题根源
- 你把
save命令放在了tell thisDocument块里,但Numbers的文档对象并不直接支持这种调用方式,保存操作得由Numbers应用程序来处理。 - 没有明确指定保存格式为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




