2012-03-13 23 views
3

を含むクローニングワークシートは、例えばLimitations section on official pageため、POIからExcelのグラフで動作するように、おそらく唯一の良い方法は、Excelは、テンプレートとして既存のチャートでファイルやチャートが使用するソースセルを変更使用しています。それは素晴らしい作品です。のApache POI:数多くの情報源によるとチャート

問題は、我々は1が、複数のではないだけを持っている必要があります(と私たちはどのように多くのコンパイル時には知らない)ということで、同じチャートでワークシートが異なる(動的に生成された)データ。 cloneSheet(sheetNumber)を使用すると、テンプレートワークシートを複製することができます。しかし、もしチャートがシート上にクローンされるまでは、うまくいく。

Exception in thread "main" java.lang.RuntimeException: The class org.apache.poi.hssf.record.chart.ChartFRTInfoRecord needs to define a clone method 
    at org.apache.poi.hssf.record.Record.clone(Record.java:71) 
    at org.apache.poi.hssf.model.InternalSheet.cloneSheet(InternalSheet.java:388) 
    at org.apache.poi.hssf.usermodel.HSSFSheet.cloneSheet(HSSFSheet.java:125) 
    at org.apache.poi.hssf.usermodel.HSSFWorkbook.cloneSheet(HSSFWorkbook.java:652) 

UPDATE:私は取得していますチャートでシートのクローンを作成しようとすると

を私はXSSFに切り替え、現在は少なくとも何も実行時例外はありません。シートデータは複製されますが、グラフは複製されません(複製されたシートには存在しません)。

ワークシートのグラフ化に成功した人はいませんか?それとも誰かがすなわちPOIとワークシートの動的な数のためにExcelのグラフを生成し、我々が持っている問題を解決するためにどのように他のアイデアを持って?私は非常に複雑な回避策になってしまった

+0

あなたはPOIのどのバージョンを使用していますか? – Gagravarr

+0

@Gagravarr私は3.7を使用しています。 3.8で修正されたかどうかを確認するためにしばらくの間、3.8ベータ5に切り替えましたが、そうではありませんでした。 –

+0

まだ3.17で動作していません – jontro

答えて

6

  1. 私はマクロExcelでテンプレートチャートで(たとえば1000)枚の大きな数を生成
  2. 私は、Apacheで必要なように私はできるだけ多くのシートにデータを入力します。 POI(とグラフで使用されている名前付き範囲で操作する)
  3. 私は私が必要とする名前にはApache POIを必要として、私はできるだけ多くのシートの名前を変更(およびXSSFは、名前付き範囲を更新していないので、それゆえ私は、HSSFに限らよExcelでの参照シート:-()
  4. の名前を変更した後、私は目を削除Apache POIを使用した残りのシート

この概念的に単純で一般的な使用例チャートを使ってExcelにエクスポートすることはできますが、少なくとも可能であり、それはかなりうまく動作しています。

関連する問題