Open1
AppleScript: NumbersのCSVエクスポートでハマる
NumbersからCSVファイルにエクスポートするのを自動化したくて、AutomatorやSiriショートカットでできるんじゃないかと調べたんですが、できませんでしたね。
で、よくよく調べると、AppleScriptではできるということなんです。
それで20年ぶりぐらいにAppleScriptを触ってエクスポートしようとしたんですが以下のエラーでハマりました。
on run
tell application "Numbers"
set myDoc to open "/path/to/XXX.numbers"
set exportDir to "/path/to/CSVエクスポート先"
export myDoc to exportDir as CSV with properties {exclude summary worksheet:true}
close myDoc saving no
end tell
end run
結論から言うとパスそのままじゃなくてPOSIX file "/path/to/CSVエクスポート先"
にしないとダメ、ということでした。
このCSVエクスポート、かなり癖がありますね。おそらくシート1つ表1つだと、フォルダパスじゃなくて.csvのファイルパスじゃなくちゃダメなんですね。
現行Numbersには、複数の表を1つのファイルに結合するオプションがありますが、それは選べませんし、エンコーディングも選べません。
いったん出力したあとに何かのスクリプトで色々処理する必要があります。
とは言え、AppleScriptでNumbersに細かなことをさせるよりは、どんなでも良いから一回CSVファイルに出力してしまったほうが、処理はしやすいのですけれども。
いちおう動いたバージョンを載せます。
on run
tell application "Numbers"
set myDoc to open "/path/to/XXX.numbers"
set exportDir to POSIX file "/path/to/CSVエクスポート先"
export myDoc to exportDir as CSV with properties {exclude summary worksheet:true}
close myDoc saving no
end tell
end run
環境は以下です。
スクリプトエディタ バージョン 2.11(231)
AppleScript 2.8
Numbers バージョン14.1(7040.0.73)