【AppleScript】 열려있는 Numbers를 Excel로 내보내기
9293 단어 AppleScriptMacnumbers
문제점
Numbers에서 Excel을 출력할 때 메인 메뉴에서 [파일 > 내보내기 > Excel...]을 매번 선택하는 것은 한 번 걸립니다.
또한 내보내기 대상을 선택한 후에도 재정의 확인 대화 상자가 표시됩니다.
게임을 만들면 데이터 조정에는 트라이 & 에러가 필수이므로 이 작업을 여러 번 반복하는 것은 매우 어렵습니다.
그래서 이 내보내기 작업을 쉽게 할 수 있는 AppleScript를 작성해 보았습니다.
스크립트
numbers2xlsx.scpt-- 開いているドキュメントの数を取得する
tell application "Numbers" to set cnt to count document
-- 開いている数で繰り返す
repeat with i from 1 to cnt
-- ファイルパスを取得する
tell application "Numbers" to set theFile to file of document i as string
-- 拡張子を *.numbers から *.xlsx に変更する
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to ".numbers"
set theList to every text item of theFile
set AppleScript's text item delimiters to ".xlsx"
set theFile to theList as string
set AppleScript's text item delimiters to tmp
-- POSIX形式に変換
set xlsx to POSIX file (POSIX path of theFile)
-- エクスポート実行
tell application "Numbers" to export document i to xlsx as Microsoft Excel
end repeat
이제 Numbers에서 열린 문서를 같은 이름의 *.xlsx에 자동으로 내보낼 수 있습니다.
단축키에 등록
이것으로 상당히 편리하게 되었습니다만, 한층 더 편하게 하기 위해서 쇼트 컷 키에의 등록을 합니다. 등록하려면 Automator 님을 사용합니다.
Automator를 시작하여 새 문서를 만듭니다. 그런 다음 서비스를 선택하고 선택을 클릭합니다.
액션에는 「Run AppleSript」를 더블 클릭해 선택합니다.
그렇다면 검색 대상으로 "Numbers.app"를 선택하고 방금전의 스크립트를 (* Your script gose here *)
라고 써 있는 곳에 붙여넣습니다.
만약을 위해 실행 버튼을 눌러 동작 확인해 두는 것이 좋습니다.
동작을 확인하면 「Cmd+S」로 저장합니다. 이름은 Numbers에서 Excel 내보내기를 입력하고 저장 버튼을 누릅니다.
저장한 후 모든 응용 프로그램 메뉴에서 서비스 > 서비스 환경설정을 선택합니다.
서비스 목록이 표시되므로 등록한 서비스를 선택하고 오른쪽 열을 클릭하여 바로 가기 키를 할당합니다.
여기에서는 「Cmd+F10」이라고 했습니다.
이제 Numbers가 활성 상태에서 Cmd+F10을 누르면 내보내기가 수행됩니다.
데이터 변환의 흐름
여담이 됩니다만, 지금 만들고 있는 게임의 데이터 컨버트의 흐름은 이렇게 되어 있습니다.
Numbers에 아이템 정보나 적 데이터를 입력하고 있습니다. 그것을 Excel로 내보내 CSV로 변환하여 실행 환경에서 읽습니다. Excel로 하면 Python(xlrd)이나 Ruby(win32ole) 등에서 읽을 수 있게 되므로 데이터 컨버트의 구현이 간단해집니다.
Numbers에서 CSV로 직접 출력 할 수 있으면 좋지만 여러 시트를 사용하고 있거나 변환시 상수를 수치로 바꾸는 등 이상한 일을하고 있기 때문에 AppleScript에서는 힘들 것 같아 Python 스크립트를 통해 합니다. 그리고 LibreOffice등을 사용하면 *.xlsx 를 직접 편집・저장할 수 있습니다만, 모처럼의 Mac 환경이므로, Apple 공식의 스프레드시트 소프트웨어를 사용하고 싶었습니다(Numbers에서도 *.xlsx 를 열 수는 있습니다만, 저장하면 *.numbers가 기본값입니다.)
이번은 CSV 형식으로 출력했습니다만, 환경에 따라서는 JSON나 Lua에 출력해도 좋을지도 모르겠네요.
참고
numbers2xlsx.scpt
-- 開いているドキュメントの数を取得する
tell application "Numbers" to set cnt to count document
-- 開いている数で繰り返す
repeat with i from 1 to cnt
-- ファイルパスを取得する
tell application "Numbers" to set theFile to file of document i as string
-- 拡張子を *.numbers から *.xlsx に変更する
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to ".numbers"
set theList to every text item of theFile
set AppleScript's text item delimiters to ".xlsx"
set theFile to theList as string
set AppleScript's text item delimiters to tmp
-- POSIX形式に変換
set xlsx to POSIX file (POSIX path of theFile)
-- エクスポート実行
tell application "Numbers" to export document i to xlsx as Microsoft Excel
end repeat
이제 Numbers에서 열린 문서를 같은 이름의 *.xlsx에 자동으로 내보낼 수 있습니다.
단축키에 등록
이것으로 상당히 편리하게 되었습니다만, 한층 더 편하게 하기 위해서 쇼트 컷 키에의 등록을 합니다. 등록하려면 Automator 님을 사용합니다.
Automator를 시작하여 새 문서를 만듭니다. 그런 다음 서비스를 선택하고 선택을 클릭합니다.
액션에는 「Run AppleSript」를 더블 클릭해 선택합니다.
그렇다면 검색 대상으로 "Numbers.app"를 선택하고 방금전의 스크립트를
(* Your script gose here *)
라고 써 있는 곳에 붙여넣습니다.만약을 위해 실행 버튼을 눌러 동작 확인해 두는 것이 좋습니다.
동작을 확인하면 「Cmd+S」로 저장합니다. 이름은 Numbers에서 Excel 내보내기를 입력하고 저장 버튼을 누릅니다.
저장한 후 모든 응용 프로그램 메뉴에서 서비스 > 서비스 환경설정을 선택합니다.
서비스 목록이 표시되므로 등록한 서비스를 선택하고 오른쪽 열을 클릭하여 바로 가기 키를 할당합니다.
여기에서는 「Cmd+F10」이라고 했습니다.
이제 Numbers가 활성 상태에서 Cmd+F10을 누르면 내보내기가 수행됩니다.
데이터 변환의 흐름
여담이 됩니다만, 지금 만들고 있는 게임의 데이터 컨버트의 흐름은 이렇게 되어 있습니다.
Numbers에 아이템 정보나 적 데이터를 입력하고 있습니다. 그것을 Excel로 내보내 CSV로 변환하여 실행 환경에서 읽습니다. Excel로 하면 Python(xlrd)이나 Ruby(win32ole) 등에서 읽을 수 있게 되므로 데이터 컨버트의 구현이 간단해집니다.
Numbers에서 CSV로 직접 출력 할 수 있으면 좋지만 여러 시트를 사용하고 있거나 변환시 상수를 수치로 바꾸는 등 이상한 일을하고 있기 때문에 AppleScript에서는 힘들 것 같아 Python 스크립트를 통해 합니다. 그리고 LibreOffice등을 사용하면 *.xlsx 를 직접 편집・저장할 수 있습니다만, 모처럼의 Mac 환경이므로, Apple 공식의 스프레드시트 소프트웨어를 사용하고 싶었습니다(Numbers에서도 *.xlsx 를 열 수는 있습니다만, 저장하면 *.numbers가 기본값입니다.)
이번은 CSV 형식으로 출력했습니다만, 환경에 따라서는 JSON나 Lua에 출력해도 좋을지도 모르겠네요.
참고
Reference
이 문제에 관하여(【AppleScript】 열려있는 Numbers를 Excel로 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/2dgames_jp/items/5ddeace794ee22a14743텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)