« NSEG#53 JavaScript の回を聞いてきた | トップページ | エクセルグレップをちょっと修正 »

Ruby でエクセルをグレップ(今時版)

 Libre Office で最近のエクセルフォーマット(xlsx)のファイル出力もできるようなので、そのファイルを参考にして作り直してみた。2007 以降のエクセルで保存した .xlsx ファイルを検索する。はず。

 [ xlsxgrep.rb ]

 Excel 97 しかもっていないので本家 Excel 2007 とか 2013 とかで出力したものでも間違いなく検索できるのかどうかは確認できないものの、そうそう駄目ということもなかろうということで。

 必要なものは Ruby と RubyZip ライブラリ。できればエクセルファイルと同じフォルダに xlsxgrep.rb も置いて、そこで Ruby コンソールを開くと面倒がなくてよいかと。

 使い方は、

>ruby xlsxgrep.rb "検索文字列" エクセルファイル名

 フォルダ内のすべての .xlsx ファイルをというのであれば、ファイル名に「*」とだけすればよいし、家計簿2014.xlsx とかなっている家計簿ファイルだけというのなら、「家計簿*」とでもすればよいです。ひとつのファイルなら「家計簿2014|家計簿2014.xlsx」などとすれば。

 セルに入力されている数字、文字、計算式が対象。見つかった場合には、ファイル名、シート名、セルの座標を表示したうえでセルの内容を出力。計算式の場合は「=」記号を除く部分を入力するほうがよいです。関数や=以外の部分の式そのもの。

 コンソールに出力する以外の機能はないので、ファイルにする必要があればリダイレクトで。

追記:2014/07/30
 考えてみるとファイルパス名を決めうちしているのはよろしくないなと思うので、少し修正中。一応修正した。

|
|

« NSEG#53 JavaScript の回を聞いてきた | トップページ | エクセルグレップをちょっと修正 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28835/60062626

この記事へのトラックバック一覧です: Ruby でエクセルをグレップ(今時版):

« NSEG#53 JavaScript の回を聞いてきた | トップページ | エクセルグレップをちょっと修正 »