- PR -

POIでエクセルの書き込み

投稿者投稿内容
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-07-18 12:02
Tomcat上でエクセルデータを作成する処理があり、POI使おうとしています。

環境
Tomcat 5.0.28
java 1.4.2.028
OS Windows XP

質問1
改ページの行設定をしようとしているのですが、
http://jakarta.apache.org/poi/apidocs/
によると
setRowBreak(int row)
でおこなえるようなのですが、
20040804バージョン
を見るとメソッドが見つかりません。
これは違う版にでもあるということでしょうか?
使えてる。なんて話があったら教えて欲しいです。

質問2
http://sunsite.tus.ac.jp/pub/apache/jakarta/poi/release/bin/
では20040804付けのものがfinalになっていますし、
http://jakarta.jp/poi/
を見てもCocoonのほうがいいよ。
というふうに思える記述があったりします。
POIでexcelというのは、今はあまりやらないのでしょうか?
Cocoonや他の方法がいいのでしょうか?
Cocoon,xlsといったキーワードで検索しますがいい例を見つけられません。

質問3
これに関連してWeb検索をいろいろしているのですが
http://www.jajakarta.org/kvasir/bbs/technical/
って閉鎖になっているのでしょうか?
検索でヒットするのですが、参照しようとすると見れません。

以上よろしくお願いします。


koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2006-07-18 13:06
poi-bin-2.5.1-final-20040804には、
HSSFSheet#setRowBreak(int)がちゃんとありますよ。
手元のバージョンをもう一度確認してはどうですか。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2006-07-18 13:19
引用:

progmanさんの書き込み (2006-07-18 12:02) より:
POIでexcelというのは、今はあまりやらないのでしょうか?
Cocoonや他の方法がいいのでしょうか?
Cocoon,xlsといったキーワードで検索しますがいい例を見つけられません。


 少なくとも私はPOI等のオープンソースを使って、
Excelの処理を行おうとは思いません。
所詮、Excelはマイクロソフトの製品でしかなく、
何か規格で標準化されているとかでないのですから、
保守をしていくことを考えると、
最初から選択肢には入りませんね。
これを選択肢に入れようとするのは、Sierの技術者等、
開発をするだけの方ですね。
企業にもよりますが、通常システムは開発期間よりも、
保守期間の方が遙かに長いですから、
安易にオープンソースを使って済まそうとすると、
後々泣きを見ることになります。
 弊社では社内用の次期システムを開発中で、
そこでExcelを扱う機能がありますが、
そこでは、POIは使用しておらず、
商用のツールを使っています。

 オープンソースで済まそうとする技術者は多いですが、
それで本当に、システムを保守・運用していけるのか、考えましょう。
正直、システムを開発するだけなら、今や日本企業を使うメリットは、
殆ど無いのですから、日本のSIerが生き残っていくためにも、
日本のSIerはこの点をもっと意識する必要があります。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-07-18 15:20
本題とは外れてますが、
引用:

所詮、Excelはマイクロソフトの製品でしかなく、
何か規格で標準化されているとかでないのですから、
保守をしていくことを考えると、
最初から選択肢には入りませんね。


 それを言うなら、Excel を使用したシステムを開発すること自体、
大きな不安の種を抱えていることになりませんか?たとえ商用の
ツールを使おうが同じことです。
 将来的な保守という点から見るなら、商用ツールを使う方がデメリットが
大きいと思います。将来、Excel の内部的な規格が大きく変更になった
場合、商用ツールが必ずしも対応してくれる保証はないし、対応してくれた
としても追加費用が発生する可能性があります。
オープンソースであれば対応してくれれば無償ですし、対応してくれなくても、
最悪、自分でソースを修正するという道が残されています。

引用:

 オープンソースで済まそうとする技術者は多いですが、
それで本当に、システムを保守・運用していけるのか、考えましょう。
正直、システムを開発するだけなら、今や日本企業を使うメリットは、
殆ど無いのですから、日本のSIerが生き残っていくためにも、
日本のSIerはこの点をもっと意識する必要があります。


日本のSIer が生き残っていくために、商用ツールを購入しましょう、という
意味でしょうか?
オープンソースを使用する方が、開発のスキルは向上すると思うのですが。
むしろ、「お金を取っているから」「有償サポートがあるから」という理由だけで、
安易に商用ツールを使用するSIerが増えることの方が心配です。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-07-18 15:47
takuさんの意見の「商用ツール」と「オープンソース」の言葉を入れ替えても、
同じことが言えるような気がします。。。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2006-07-18 16:29
koeさん、takuさんレスありがとうございます。
 ダウンロードしなおして、解凍しなおしてみると、コンパイルでき、実行もできました。

今のシステムのなかにはExcelファイルを出力する有償ソフトも含まれていますが、
今回の機能実現に向かないということで除外されています。
よいツールがあれば、有償でもマネージャーに導入を提言しますし、マネージャーも
導入を検討するでしょう。
今はPOIでどうかと試行している状況です。


技術論に戻りますが
今やろうとしているのは
・手でエクセルファイルを作成する。
・そのファイルを利用してjavaよりデータを付加して出力する。
 使用しているエクセル機能は
 セル結合、セル書式設定、ページ設定
 文字、数字、日付入力
 といったところです。

WorkBookをコピーしようとしたのですが
http://issues.apache.org/bugzilla/show_bug.cgi?id=36956
というバグがあって、既存ファイルに改ページ設定できません。
対処方法も上のURLに記載されているようなのですが、
これはPOIのソースを修正しようということでしょうか?
ユーザアプリに何かコードを追加しようということなんでしょうか?
ちょっとわかりません。回避された方いらっしゃらないでしょうか?

新規でWorkBookを作成して、元のエクセルファイルの内容をコピーという方法も
検討しているのですが、かなり細かく情報を取得して設定しなおさないといけない
ようです。
今HSSFCellStyleをさらにバラして設定するというところをやってるのですが、
もっと簡単な方法はないものかと思案しています。

セル単位などでコピーする方法はないでしょうか?
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2006-07-18 17:47
引用:

flatlineさんの書き込み (2006-07-18 15:20) より:
 それを言うなら、Excel を使用したシステムを開発すること自体、
大きな不安の種を抱えていることになりませんか?たとえ商用の
ツールを使おうが同じことです。


 そんなことは誰でも知っていること。
それを問うても無意味です・・・。

引用:

flatlineさんの書き込み (2006-07-18 15:20) より:
 将来的な保守という点から見るなら、商用ツールを使う方がデメリットが
大きいと思います。将来、Excel の内部的な規格が大きく変更になった
場合、商用ツールが必ずしも対応してくれる保証はないし、対応してくれた
としても追加費用が発生する可能性があります。
オープンソースであれば対応してくれれば無償ですし、対応してくれなくても、
最悪、自分でソースを修正するという道が残されています。


 オープンソースであろうと、自分でソースを修正する選択肢は、
企業の情報システム部にはまず無いのですよ。
それがあると仰るのは、Sierにしか在籍したことがない技術者です。

引用:

かつのりさんの書き込み (2006-07-18 15:47) より:
takuさんの意見の「商用ツール」と「オープンソース」の言葉を入れ替えても、
同じことが言えるような気がします。。。


 違いますよ。
商用ツールなら商用ツールが売れている限り、
保守サポートが続けられるはずです。
保守サポートが続いているなら、それはベンダーの問題です。
ですが、オープンソースはどうでしょうか?
オープンソースは所詮はボランティアですから、
そこに参画している人達に意志が無ければ、
場合によってはOfficeがバージョンアップした場合に、
対応出来ないことも出てきますよね。
オープンソースを使っていたら、私のような、
企業の情報システム部にいる人間は、
その対応を自分自身で行う必要が出てきてしまいます。
それは、自分自身が部署を去った後でも続くのですよ。
だから、私はStrutsのような書籍もいっぱい出ているツールは別ですが、
それ以外は、オープンソースの使用は薦めていません。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2006-07-18 18:35
引用:

 オープンソースであろうと、自分でソースを修正する選択肢は、
企業の情報システム部にはまず無いのですよ。
それがあると仰るのは、Sierにしか在籍したことがない技術者です。



 私は、SIer 出身で現在は(SIerではない)企業の情報システム部にいます。
で、自分でソースを修正する選択肢があります(開発部門なので)。
なので、taku さんとは少し立場が異なるかもしれませんね。

引用:

商用ツールなら商用ツールが売れている限り、
保守サポートが続けられるはずです。



 これは少し疑問。売れていても、コスト的に見合わないと判断されれば
サポートなど簡単に打ち切られると思いますが。もっとありうるケースと
しては、その商用ツールの開発元が倒産して、担当営業も技術者も行方しれず
になってしまうとか。そういう場合、商用ツールだとお手上げです。
(バイナリから解析するという手段はあるかもしれませんが)。
 オープンソースであれば、たとえ、そのコミュニティがバージョンアップ
する意志を無くしてしまったとしても、ソースさえ手元にあれば、お金を
出してでも、やる気のあるSIer にでもカスタマイズを依頼できる可能性が
あります。
 たぶん、自分がSIer出身なのと、予算的に商用ツールをなかなか買って
もらえないという事情から、「自分でできることは自分で」という意識が
高いのでこのように考えてしまうのだと思いますが。

#そう考えると、買ってもらえたのって、データベースとAPサーバだけだ(^^;

 別に、無条件でオープンソースを使うのがよい、と言っているわけでは
ないですし、商用ツールの方が妥当な選択肢だと思う場合は、稟議出します
けどね。

スキルアップ/キャリアアップ(JOB@IT)