2016-12-22 34 views
1

apache poi libraryを使用して「積み重ね棒グラフ」を作成したいと思います。いくつかのドキュメントが必要です。上記のコードの使用Apache PoIを作成する方法Barchart

 row1 = worksheet.createRow(r); 
     row['data'].flatten.each_with_index do |data, index| 
     cell = row1.createCell(index); 
     cell.setCellValue(data); 
     end 
    drawing = worksheet.createDrawingPatriarch(); 
    anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 8, 20); 

    chart = drawing.createChart(anchor); 
    ctChart = chart.getCTChart(); 
    ctPlotArea = ctChart.getPlotArea(); 
    ctBarChart = ctPlotArea.addNewBarChart(); 

    ctBoolean = ctBarChart.addNewVaryColors(); 
    ctBoolean.setVal(true); 
    ctBarChart.addNewBarDir().setVal(STBarDir.BAR); 
    ctBarChart.addNewGrouping().setVal(STBarGrouping.STACKED); 

     ctBarSer = ctBarChart.addNewSer(); 
     ctSerTx = ctBarSer.addNewTx(); 
     ctStrRef = ctSerTx.addNewStrRef(); 
     ctStrRef.setF("Sheet1!$A$#{r+1}"); 
     ctBarSer.addNewIdx().setVal(r+1); 
     cttAxDataSource = ctBarSer.addNewCat(); 
     ctStrRef = cttAxDataSource.addNewStrRef(); 
     length = row['data'].flatten.length 
     ctStrRef.setF("Sheet1!$B$#{r+1}:$#{CellReference.convertNumToColString(length-1)}$#{r + 1}"); 
     ctNumDataSource = ctBarSer.addNewVal(); 
     ctNumRef = ctNumDataSource.addNewNumRef(); 
     ctNumRef.setF("Sheet1!$B$#{r+1}:$#{CellReference.convertNumToColString(length-1)}$#{r+1}"); 

     ctBarSer.addNewSpPr().addNewLn().addNewSolidFill().addNewSrgbClr().setVal([0,0,0]); 

私は棒グラフを取得しますが積み上げ棒グラフに変換する必要がありますしています。

enter image description here

+2

あなたの質問に関して、「必要なドキュメント」があると思います。つまり、ワンライナーはあなたが試したことを言っていません。たぶん[テンプレートアプローチ](http://www.programming-free.com/2012/12/create-charts-in-excel-using-java.html)があなたのために働くかもしれません.... – kiwiwings

+0

私は作成することができますapache poiを使った棒グラフ。私の要求は棒グラフを積み重ね棒グラフに変換するように変更されました。 – user1534350

答えて

2

私はあなたのチャートの仕事を作るための魔法の呪文は、私はあなたがあなたの問題を介して動作することができ、ある正確に何を伝えることはできませんが。

作成したいグラフの種類がPOIでサポートされていない場合。手動で作成する必要があります。あなたはそれについて良いスタートをしているようだ。仕様書はこちらhttp://www.ecma-international.org/publications/standards/Ecma-376.htmにあります。 POIは仕様の第1版を使用します。

これらのドキュメントは非常に優れていますが、XMLの構造を決定するだけの助けが必要な場合があります。 ExcelやWordを使って簡単な文書を作成し、保存した文書の名前を*.zipに変更します。これで、Notepad ++やその他のビューアを使ってxmlパッケージを調べることができます。

POIで生成されたものがあれば、同様の方法で結果のXMLを表示して、結果が期待どおりでない場合の違いを確認することもできます。

関連する問題