Home‎ > ‎WebDev‎ > ‎

ApachePOI

090328_09_59

poi_rubyに再度挑戦。portで、gcc43 とか入れてみたりしたのだけど、なんかうまくいかない。
makeファイルの書き換え失敗してるのだろうか?
gcc34とかgcj34は、そもそもportからインストールする段階で、エラーはいて失敗するし。
gemでインストールできるようになるの待ってた方がいいのかも。いつになるかわかんねけど。

090322_01_10

結局、Jrubyに戻ってやってるとこ。
一応、cellレベルまで落として、ブック間のコピーってのはやってみたが、結構いろいろひっかかった。
  • セル毎にスタイルをクローンすると、スタイルの数が増えまくってExcelでおかしなことになる
  • 新しくスタイルを作っておかないと、単にスタイルに上書きしてることになる
  • スタイルは、HSSFWorkbook からでないとつくれない
  • セル幅の指定は、スタイルじゃなかった w
Sheet とか Row とか Cell とかが、自分の属する WorkBookとかを参照する手段がないのが面倒だとおもった。
それから、Sheet以下、属するWorkBookと不可分なのが、なんとも…。
いくつかのBookからシートを寄せ集めてって、結構やりそうな気がするんだけども…。


090320_22_10

結局、なんとなくいけそうなのは
  • Jruby
  • rjb
の二つ。
rjbのgemによるインストールは、意外な部分で引っかかったが、まぁ、それもどっかにメモしておこう。
しかし、複数ブック間のシートのコピーについては、今のところいいやり方が見つかってない。
Excelファイルそのものを扱うという意味では、これができるのとできないのでは、汎用性が大きくかわってくるんだよね。
最終的には、セルのデータまで降りていけばコピーできるんだろうけど、スタイルやらなんやらと考えていくと頭が痛くなる。
しかし、今やろうとしていることに関して言えば、実際にはこの機能は必要としていないので、なんか見つかるまでほっておくことにしよう。

いずれにしても、JAVAやRUBYが入ってないといけなかったり、非プログラマにやらせることじゃない気もする。
http://poi.apache.org/apidocs/

090317_23_26

仕事では、Excelに情報をまとめることが非常に多い。
なんだかんだで触っていることが一番多いツールかも知れない。
PowerPointも多い。
どちらかというと、PPTの方がExcelよりも更に嫌いだ。
いや、プレゼンスライドを作るのならいい。これに限界ぎりぎりの小さな文字で説明資料を作るのが不条理に感じられるのだ。

Excelは、表やグラフはもちろん、構成図や指示書のフォーマットにも使えたりと汎用性も高い。
だが、ExcelVBAは嫌いだ。どうも、覚える気にならない。どうせだから、AdobeみたいにJavaScriptにでもしてくれたらいいのに。

さて、Excelである。
なぜか、昨日、今日と、シートをコピーしては、少しづつ内容を変えていくというのを延々とやっていた。
ルールではなくて、画面番号ひとつひとつに対応した具体的なものが欲しいというのだ。
手作業でやれば間違いも増えるし、萎えるし、ろくなコトはないのだが、まぁ、やることになってしまったので仕方ない。

こんな馬鹿馬鹿しいことは、馬鹿馬鹿しいからこそ、これからも起こるだろう。
どうせだから、設定ルールを1枚のシートに書けば、ページ番号毎に展開してシートを増やしたり、
ついでだから、サンプルのhtmlやjavascriptファンクションのコメント入りひな形までつくってくれるような
自動生成ツールつくってしまえばいいんじゃまいか…。

とおもって、ExcelをRubyあたりでいじれるツールを探してみたのだが、
WindowsならOLE経由でいじる例がたくさんのっているのだが、OSXでやろうと思うと結構見つからない。

gem -r excel で探したところ、以下の書き出し、読み込みにつかえるライブラリが一応はあがっていた。
  • parseexcel
  • spreadsheet-excel
それ以外だと、JrubyでPOIを使うとか、YAJB=Yet Another Java Bridge 経由でRubyをつかうとか、
POIそのものにも、POI-Ruby というのがあるようだ。

POI-Ruby は、ビルドするのに GCJ がいるっていうので、インストール面倒くさくてあきらめた。
YAJBについては、インストールしたモノの、エラーをはいて動かなかった。JREのバージョンの問題だろうか?2005年が最終アップデートだし。
で、結局JRubyだったら、持ってくるだけで動いたので、そのあたりでいいやってことになったようだ。

色々妄想はふくらむけど、とりあえずは何ができるか調べてみよう。



Comments