概要
ExcelファイルをJSON化するRubyスクリプトを作った。コードはこちら。
使用例
Excelファイル例
ファイル名 crimes.xls
シート1:「犯罪」
罪状 | 判決 | 罰金 |
---|---|---|
のぞき | 死刑 | 5000 |
スリ | 死刑 | 10000 |
ひったくり | 死刑 | 100000 |
ねずみ講 | 死刑 | 1000000 |
シート2: 「犯罪者」
名前 | 経歴 |
---|---|
容疑者A | のぞき,スリ |
容疑者B | スリ |
容疑者C | ねずみ講,スリ |
シート3: 「!判決」
判決 |
---|
無罪 |
死刑 |
実行
$ ruby x2j.rb crimes.xls
結果
犯罪.json
[{"罪状":"のぞき","判決":"死刑","罰金":5000.0},{"罪状":"スリ","判決":"死刑","罰金":10000.0},{"罪状":"ひったくり","判決
":"死刑","罰金":100000.0},{"罪状":"ねずみ講","判決":"死刑","罰金":1000000.0}]
犯罪者.json
[{"名前":"容疑者A","経歴":["のぞき","スリ"]},{"名前":"容疑者B","経歴":"スリ"},{"名前":"容疑者C","経歴":["ねずみ講","ス
リ"]}]
仕様
- シートごとに1ファイル生成される。
- 先頭に"!"が付いた名前のシートは処理対象とされない。
- 1行目の各列をキーとした辞書の配列が作られる。
- セルの中身がCSVの場合、配列に変換される。
経緯
ゲームアプリ用のデータ作成のために、スプレッドシートからJSON書き出す仕組みが欲しかった。Googleスプレッドシートの内容をGoogle Apps Script(JavaScript)でJSONに変換するしくみを作って使っていたが、手元のファイルで管理したくなった。
[Ruby]RubyでExcelをつかう[Rails]を読んで、Rubyで簡単にできそうだったのでやってみた。
作ったあとで、Rento83 • Excelのデーターをjson形式やcsv形式になおしてくれる便利なサービスの記事でMr. Data Converterを知った。高機能で目的にも合致している。ただし、Excelファイルから手でコピペしないと使えない。