embulk-plugin-input-roo-excelはExcelのデータを読み込むためのInputプラグインです。このプラグインでは、Excelファイルを読込みするためにrubyのライブラリrooを使用しています。
このドキュメントはEmbulkで、Rubyのライブラリを使うためにはどのようにしたら良いかをメモしたものです。
このドキュメントは一部不完全なところがあります。(まだ手順が確立できておらず試行錯誤中です。)
- OS: CentOS7
- Java: OpenJDK Runtime Environment (rhel-2.5.4.2.el7_0-x86_64 u75-b13)
- Embulk: 0.3.2
- 「良さそうな手順」よりももっと簡単に環境を整備できるだろうか?
- java -jar embulk.jar gem install embulk-plugin-input-roo-excel したときにrooを入れる方法
- embulk-plugin-input-roo-excel/Gemfileにgem 'roo'と書けばgem insallしたときに関連するパッケージが導入される?
空のバンドルを作成します。
java -jar embulk.jar bundle my_bundle
Initializing my_bundle...
Fetching: bundler-1.7.12.gem (100%)
Successfully installed bundler-1.7.12
1 gem installed
The Gemfile specifies no dependencies
Your bundle is complete!
It was installed into .
gem install コマンドでrooのgemを導入します。
java -jar embulk.jar -b my_bundle gem install roo
Fetching: ruby-ole-1.2.11.8.gem (100%)
Successfully installed ruby-ole-1.2.11.8
Fetching: spreadsheet-1.0.1.gem (100%)
Successfully installed spreadsheet-1.0.1
Fetching: nokogiri-1.6.6.2-java.gem (100%)
Successfully installed nokogiri-1.6.6.2-java
Fetching: rubyzip-1.1.7.gem (100%)
Successfully installed rubyzip-1.1.7
Fetching: roo-1.13.2.gem (100%)
Successfully installed roo-1.13.2
5 gems installed
インストールされたgemはどこへ?、my_bundle/jruby/1.9/gems/へインストールされるようです。
ls -1 my_bundle/jruby/1.9/gems/
bundler-1.7.12
nokogiri-1.6.6.2-java
roo-1.13.2
ruby-ole-1.2.11.8
rubyzip-1.1.7
spreadsheet-1.0.1
gem listでインストールされたパッケージを確認します。
java -jar embulk.jar -b my_bundle gem list
*** LOCAL GEMS ***
bundler (1.7.12)
あれ??、表示されない。おかしいな
Gemfileにrooのエントリを追加します。
vi my_bundle/Gemfile
# ..
gem 'roo'
% java -jar embulk.jar -b my_bundle gem list
*** LOCAL GEMS ***
bundler (1.7.12)
nokogiri (1.6.6.2 java)
roo (1.13.2)
ruby-ole (1.2.11.8)
rubyzip (1.1.7)
spreadsheet (1.0.1)
今度は正しく表示されました。
あとは、my_bundle/embulk以下にプラグインを書いて次のように実行すれば意図どおり動作するようです。
vi my_bundle/embulk/input_roo_excel.rb
設定ファイルは次のとおりです。
cat config.yml
exec: {}
in:
type: roo_excel
paths: ["/home/arch/test"]
columns:
- { name: name, type: string }
- { name: name_kana, type: string }
- { name: e-mail, type: string }
out: {type: stdout}
プレビューを実行します。
env LANG=ja_JP.utf-8 java -jar embulk.jar -b my_bundle preview config.yml
Excel input started.
Excel input thread 0...
+-------------+------------------+---------------------------------+
| name:string | name_kana:string | e-mail:string |
+-------------+------------------+---------------------------------+
| 名前 | ふりがな | アドレス |
| 吉岡 さゆり | よしおか さゆり | yoshioka_sayuri@example.com |
| 千葉 龍吉 | ちば りゅうきち | chiba_ryuukichi@example.com |
| 土橋 拓郎 | つちはし たくろう | tsuchihashi_takurou@example.com |
| 本間 紗季 | ほんま さき | honma_saki@example.com |
| 田口 翔 | たぐち しょう | taguchi_shou@example.com |
| 田所 えみ | たどころ えみ | tadokoro_emi@example.com |
| 伊集院 あい | いじゅういん あい | ijuuin_ai@example.com |
| 滝田 あさみ | たきた あさみ | takita_asami@example.com |
| 高田 知世 | たかだ ちせ | takada_chise@example.com |
| 池内 沙耶 | いけうち さや | ikeuchi_saya@example.com |
| 小池 竜次 | こいけ りゅうじ | koike_ryuuji@example.com |
| 安田 礼子 | やすだ れいこ | yasuda_reiko@example.com |
| 宮部 健 | みやべ けん | miyabe_ken@example.com |
| 西島 かおり | にしじま かおり | nishijima_kaori@example.com |
| 平井 高史 | ひらい たかし | hirai_takashi@example.com |
| 海野 由宇 | うみの ゆう | umino_yuu@example.com |
| 杉田 サダヲ | すぎた さだお | sugita_sadawo@example.com |
| 小田島 あさみ | おだじま あさみ | odajima_asami@example.com |
| 佐川 勝久 | さがわ かつひさ | sagawa_katsuhisa@example.com |
| 大倉 恵麻 | おおくら えま | ookura_ema@example.com |
| 西山 智花 | にしやま ともか | nishiyama_tomoka@example.com |
| 長岡 七世 | ながおか ななせ | nagaoka_nanase@example.com |
| 竹下 美和子 | たけした みわこ | takeshita_miwako@example.com |
| 梅田 智花 | うめだ ともか | umeda_tomoka@example.com |
| 白鳥 路子 | しらとり みちこ | shiratori_michiko@example.com |
| 宮地 秀隆 | みやじ ひでたか | miyaji_hidetaka@example.com |
| 菅野 優 | すがの ゆう | sugano_yuu@example.com |
| 広田 涼 | ひろた りょう | hirota_ryou@example.com |
| 野口 ひろみ | のぐち ひろみ | noguchi_hiromi@example.com |
| 末永 怜奈 | すえなが れいな | suenaga_reina@example.com |
| 加藤 真吾 | かとう しんご | katou_shingo@example.com |
| 小口 秀隆 | おぐち ひでたか | oguchi_hidetaka@example.com |
| 平井 昌代 | ひらい まさよ | hirai_masayo@example.com |
| 細川 早織 | ほそかわ さおり | hosokawa_saori@example.com |
| 片山 昌代 | かたやま まさよ | katayama_masayo@example.com |
| 高瀬 晃司 | たかせ こうじ | takase_kouji@example.com |
| 内海 早織 | うちみ さおり | uchimi_saori@example.com |
| 今 美優 | いま みゅう | ima_myuu@example.com |
| 半田 圭 | はんだ けい | hannda_kei@example.com |
| 神戸 夏希 | こうべ なつき | koube_natsuki@example.com |
| 西田 剛基 | にしだ よしき | nishida_yoshiki@example.com |
| 北川 窈 | きたかわ よう | kitakawa_you@example.com |
| 北村 惇 | きたむら じゅん | kitamura_jun@example.com |
| 田村 憲史 | たむら のりひと | tamura_norihito@example.com |
| 高崎 恵望子 | たかさき えみこ | takasaki_emiko@example.com |
| 戸田 徹平 | とだ てっぺい | toda_teppei@example.com |
| 川畑 奈々 | かわはた なな | kawahata_nana@example.com |
| 平田 裕次郎 | ひらた ゆうじろう | hirata_yuujirou@example.com |
| 倉本 法嗣 | くらもと ほうし | kuramoto_houshi@example.com |
| 浜野 はるみ | はまの はるみ | hamano_harumi@example.com |
+-------------+------------------+---------------------------------+
% java -jar embulk.jar bundle my_bundle
Initializing my_bundle...
Fetching: bundler-1.7.12.gem (100%)
Successfully installed bundler-1.7.12
1 gem installed
The Gemfile specifies no dependencies
Your bundle is complete!
It was installed into .
% vi my_bundle/Gemfile
source 'https://rubygems.org/'
# Plugin bundle:
#
...
gem 'roo'
他のRubyと同じ感覚で、bundle installを実行すると次のように怒られます。
java -jar embulk.jar -b my_bundle bundle install
Could not find gem 'roo (>= 0) java' in the gems available on this machine.
Run `bundle install` to install missing gems.