64
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ExcelからJSON

Last updated at Posted at 2014-05-17

概要

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

64
60
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?