@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Jakarta-POIでグラフ

1
投稿者投稿内容
ミウ
会議室デビュー日: 2004/04/12
投稿数: 3
投稿日時: 2004-04-12 19:28
Jakarta-POIを使用して、グラフを作成しようとしているのですが
うまくいきません。

具体的にはデータが空の表を用意し、グラフを用意しておきます。
そのファイルを読み込んで、POIで値をセットして保存で
グラフ作成というようなことをしようと思っています。

しかし結果は壊れたExcelファイルができてしまいます。
POIはこのような使い方をできないのでしょうか。
(HPには、チャートは2.0から対応と書いてあります)

使用したバージョンは、final2.0とfinal2.5です。

試したところ、↓のようにグラフを持っているファイルを開いて保存するだけで
壊れたファイルができてしまいます。
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("hina.xls"));
FileOutputStream fileOut = new FileOutputStream("hina2.xls");
wb.write(fileOut);
fileOut.close();

どなたかご教授ください。
おかだ
常連さん
会議室デビュー日: 2004/04/05
投稿数: 20
お住まい・勤務地: 大阪
投稿日時: 2004-04-13 14:56
HSSFChartはscratchpadに。。。
JavadocのHSSFChartのcreateBarChartにはまだ出来ていないと書いてあります。
NOTE: Does not yet work... checking it in just so others can take a look.
シート内にグラフを入れることは出来ませんでしたが、
挿入で、グラフを挿入してやれば動作しました。
という事で、ワークシート内にグラフはおかずに
グラフを挿入する事で回避してはどうでしょうか。

環境は、POI-2.5-final-20040302です。
ミウ
会議室デビュー日: 2004/04/12
投稿数: 3
投稿日時: 2004-04-13 17:46
ご返答ありがとうございます。
HSSFChartのJavaDocには確かにDose not yet workって書いてありますね。
でも、ファイルを読みこんで書くだけでも使っているんですかね。
(しかし動かないのだから使っているか、その他グラフには対応してないのかなぁ〜)

ところで、グラフを挿入する方法とは
どのような方法でしょうか。
他のPOIのクラスのメソッドを使用するのでしょうか。

すいません。環境を書き忘れていましたが環境は
Excel2002
Windows2000
JDK1.4.1_02
poi-2.5-final-20040302/poi-2.0-final-20040126
です。
おかだ
常連さん
会議室デビュー日: 2004/04/05
投稿数: 20
お住まい・勤務地: 大阪
投稿日時: 2004-04-13 19:32
私が読んだソースではグラフの挿入するコードがないので
今回ミウさんが元のExcelファイルを用意されてるということですんで、
そのExcelファイルにグラフを先に挿入してやります。
やり方は、シート名が書かれているタブで右クリック-挿入でグラフを
選んでやります。
これで、OKです。
問題は、グラフの画面がでかくなりすぎるんですが....

おそらく、実装中のHSSFChartに関連するChartFormatRecord、ChartRecordが
邪魔してるんではないかと思ってます。
単体は目を通したんですが、明日にでももう少しソースを読んで見ます。

ちなみに、標準モジュールを使用してのマクロが使えるようなので
そこからExcel起動時にグラフを書くのも一つの手かもしれません。
ミウ
会議室デビュー日: 2004/04/12
投稿数: 3
投稿日時: 2004-04-13 20:04
>やり方は、シート名が書かれているタブで右クリック-挿入でグラフを
>選んでやります。
>これで、OKです。
>問題は、グラフの画面がでかくなりすぎるんですが....
度々ありがとうございます。
上記のやり方ですが、別シートでグラフを作成するということですね。
こちらの方法で行うと確かにできますね。
オブジェクトとして扱った場合に、POIがまだ対応していないということに
なりそうですね。

>ちなみに、標準モジュールを使用してのマクロが使えるようなので
>そこからExcel起動時にグラフを書くのも一つの手かもしれません。
こちらの方は、もう試しました。
この方法はグラフ作成できるのですが
セキュリティを高にしてしまうと、グラフが作成できないのが困りものです。
こちらは最終手段かなと思っています。



1

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