2014年11月12日

ゲームのアップグレード (19) | Macでエクセルから UTF-8 の JSONデータを出力!

さて、前回最後に大問題があるって書いたんだけど、なんと今日、解決出来ました!!
なんで今回はそれ!

大問題って、エクセルからのゲームデータ出力の自動化だったんですよね。


どうやって解決するのか?
むか〜し、WindowsPCでデータを作ってた時は、エクセルでVBを書いてJSON形式のデータをファイルに出力してたんだけど、さて、今はMac。
UTF-8のデータが必要なんだけど、Macだと、ActiveX だかなんだかが足りなくて、すごい便利だった ADODB.Stream って言うのが使えないんですよね...
一生懸命調べてたんだけど、どうも調べ方が悪くて、一向に解決策が見つからなかったんだけど、やっと見つけましたよ!!
ここ!この方のおかげで存在に気がつく事が出来ました!!
Miaさんありがとう!っていうか、日本の人だったのか!!

なんと、AppleScript ってのがあるんですね〜。
存在すら知らなかったよ〜...


AppleScript を見てみる
さっきの Mia さんのページから、サンプルのスクリプトとエクセルファイルをダウンロードして早速試してみたんですが、ちゃんとエクスポートされてますね。日本語も文字化け無し。パーフェクトです。

なんで、このスクリプトをスタート地点に、AppleScript を理解しながら改良して、自分の望むJSONフォーマットになる様に変更していきますね。

あと、リサーチしてる最中に思ったのは、各アプリが持ってる AppleScript のプロパティやメソッドが見れる辞書の出し方。
なぜか結構探すの大変だったんで、それだけ書いときますね。
トップメニューの File -> Open Dictionary...
Screen Shot 2014-11-12 at 2.40.48 AM.png
で、アプリの一覧が出てくるんで、今回の私みたいな場合は "Microsoft Excel" を選択。
Screen Shot 2014-11-12 at 2.41.55 AM.png
すると "Microsoft Excel" の辞書登場。
Screen Shot 2014-11-12 at 2.42.59 AM.png
ま、結構分かりにくいから、Google先生に聞いた方が速いかもしれないけどね!!


AppleScriptを使って Excel 文書を UTF-8 JSONフォーマットで出力!
でわここで、AppleScript をどどーんと公開!

あ、その前にエクセルデータのサンプルからかな?
これがデイリーボーナスのシート。
Screen Shot 2014-11-12 at 2.48.50 AM.png
こっちが、ローカライズテキストのシート。
Screen Shot 2014-11-12 at 2.48.58 AM.png
1行目がエクスポート時の解析用のキーワードを入れる場所になってます。
2行目がJSONのキー部分。
3行目以降が実際のデータ。
1行目のキーワードは、string だと、文字列として "" でかこって出力。array キーワードが、配列の始まりを表して、その列の数字が、一つの配列に含まれる要素の数で、この例だと 2 ってなってるんで、次の列から2列毎(ここでは type と amount)に配列の要素として出力。
array_end で相列要素の終了を検知。

で、そんな俺ルールに従って書いたスクリプトが、以下のファイル!
このファイルを AppleScriptEditor で開いて、さらに エクスポートしたいデータの Excel ワークブックを開いた状態で実行。

これで、ワークブックに含まれるシートを全てエクスポートしてくれます!!
(頭に _ が付いてるシートは無視するけど。)

いろいろね〜、至らない所はあるんですが、ひとまず AppleScript を理解してる時間がないんで、これで良しとしときます。
問題としては、配列が2重以上の配列には対応してないんですよね。配列の中に配列があるとアウトなはず。
今そんなフォーマット使ってないから問題ないけど。
ホントは再帰処理でやりたいんだけどね〜。

ま、データ出力ちゃんと出来たからいいかな?
これで、エクセル上でゲームデータを変更しても、比較的簡単にエクスポートして更新できそうですね。
変更のヒューマンエラーも減るはずだし。

いや〜、なんかもっと大変だと思ってたけど、以外と速く対応できたかな?
じゃ、また次回〜。

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪

こうやってみると、結構参考文献もいっぱいあるのね。
posted by やまけん at 10:16| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。