Numbers書類をExcel形式(.xlsx)で書き出すAppleScriptです。
とりあえず動作確認のために作っただけだったので、動作は最低限のものです。Numbersでオープン中のNumbers書類をExcel形式に書き出します。それだけです。処理対象は1つのシートのみ含んでいる書類に限っています。Numbers書類のオープンや書き出した書類のクローズは別途作成してください。
Numbers書類でシートが複数存在しているものをExcel書類に書き出すと、各シートへのリンクが含まれたインデックスが1枚追加されます。このインデックスは非常に親切でよいのですが、割と邪魔です。あとでScript側から削除することも可能ですが、自分はNumbersから書き出す際に複数シートの書類は書き出さないようにまとめてみました。
もちろん、これはルーチンを整備して実際に使う人の考えによるものなので、別の人はNumbersの複数シートを含む書類をそのままExcel書類に変換されてもいいと考えるかもしれないですし、処理時に複数のシートを個別のNumbers書類に分割するような処理を書いてもいいでしょう。
実際にNumbersを使っていて、あまりExcel書き出しは必要にならなかったので「できる」ことは知っていながらも書かなかった処理ではあります。
AppleScript名:Numbers書類からExcel書き出し |
— Created 2017-03-28 by Takaaki Naganoya — Modified 2020-07-02 by Takaaki Naganoya — 2020 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" set tmpPath to (path to desktop) as string set aRes to exportNumbersDocToExcel(tmpPath) of me –Numbers書類をExcel書き出し on exportNumbersDocToExcel(targFolderPath as string) tell application "Numbers" set dCount to count every document if dCount = 0 then return false end if –複数のシートが存在していると書き出せないことはないが、リンク付きの凝ったExcelシートになる tell front document set sCount to count every sheet if sCount = 0 or sCount > 1 then return false end if end tell set aPath to file of document 1 end tell set curPath to (current application’s NSString’s stringWithString:(POSIX path of aPath))’s lastPathComponent()’s stringByDeletingPathExtension()’s stringByAppendingString:".xlsx" set outPath to (targFolderPath & curPath) –このあと、安全のために重複パスの回避ルーチンを呼んでおくといいでしょう tell application "Numbers" set anOpt to {class:export options, image quality:Best} export document 1 to file outPath as Microsoft Excel with properties anOpt return true end tell end exportNumbersDocToExcel |
More from my site
(Visited 207 times, 1 visits today)