社内のオフィスファイル検索システムなんてのに使えそうですね。 Officex2strはRubyGemでインストールできるライブラリで、オフィスファイル(docx/xlsxなど)を指定するとテキストにして出力してくれるライブラリです。 まずはインストールから。toutf8を使っているようで、1.8系でしか使えませんでした。とは言え2.0への対応はさほど難しくはないはず。

$ gem install officex2str
Fetching: zipruby-0.3.6.gem (100%)
Building native extensions.  This could take a while...
Fetching: officex2str-0.0.7.gem (100%)
Fetching: mini_portile-0.5.2.gem (100%)
Successfully installed zipruby-0.3.6
Successfully installed officex2str-0.0.7
Successfully installed mini_portile-0.5.2
3 gems installed

これでインストール完了です。実際の利用についてはirbを使って試してみます。

$ irb
1.8.7 :001 > require 'rubygems'
 => true 
1.8.7 :002 > require 'officex2str'
=> true 
1.8.7 :003 > puts Officex2str.convert(office_file_path)

そして出力されるのが次の画像のようになります。 出力例 シンプルですね。MS OfficeのxファイルはXMLフォーマットがベースで、画像などのリソースを含めてZip圧縮したものになっています。そこからテキストの装飾情報を除いてテキストだけを読み取れば、検索などで使えるテキストが得られるという算段です。 これをSolrなどの全文検索エンジンに流し込んでしまえば、社内で使える検索システムが容易に出来上がりそうです。オフィスファイルは無数にあると思われますので、それをうまく検索できるようにすれば業務効率が大幅にアップするでしょう。 Officex2strはRuby製、MIT Licenseのオープンソース・ソフトウェアです。 interu/officex2str