Ruby
Excel
JSON

ExcelからJSON

More than 4 years have passed since last update.

概要

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ファイルから手でコピペしないと使えない。