« Ruby でエクセルをグレップ(今時版) | トップページ | 図書館内乱 »

エクセルグレップをちょっと修正

 先のやつはそれぞれのファイルへのパスを決めうちしてしまっていて、それはちょっとまずいのではないかと思ったので修正。Libre Office で作成したファイルにおいてはよいかもしれないけれど、あるいは別のとか正規の Office で生成した場合にフォルダ構造は同じだったとしてもその名前が微妙に異なるということは容易に想像できることではあるので、やはりそれはよろしくないなと。(本当はそうした仕様についてきちんと調べたうえで作成すればよいのだろうけれど)

 ということでルートにある [Content-Type].xml を参照してそれぞれのファイルパスを取得してから処理するように修正したのだった。

 その過程で各シートファイルには ID 番号が振られているのだけれど、[Content-Type].xml ではややバラバラな感じに並んでしまっているので、できればきちんと ID 番号順にしないと扱いが不便であるなと思った。で、なんとなくどうすればいいかなと思っていたら eban さんが教えてくれたのだけれど、そもそもこちらが例示していたものが正確ではなかったので、それ自体はちゃんと処理できるのに、ファイルのほうではうまくいかないということだったのだ。で、あとになって「そもそもが間違っていた!」と気づいたのだけれど時すでに遅し。eban さんごめんなさい。

 結果的に小さな Sheet クラスを用意して ID やシート名、シートファイルへのパスを収めるようにしたのだけれど、attrr_accessor しかないクラスではなんだか邪道感が強くて恥ずかしいような。ID をチェックして該当するところに収めるという形で一応作成。ひとまず手元のファイルでは正しく動いている様子。

 ま、ひとまずはこんなところで。

|

« Ruby でエクセルをグレップ(今時版) | トップページ | 図書館内乱 »

コメント

コメントを書く



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


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: エクセルグレップをちょっと修正:

« Ruby でエクセルをグレップ(今時版) | トップページ | 図書館内乱 »