2016-12-22 10 views
1

Я хочу создать «сложную гистограмму», используя библиотеку apache poi. Нужна документация.Как создать Apache POI stacked 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. Теперь вы можете проверить пакет xml с помощью Notepad ++ или другого зрителя.

Как только у вас есть что-то, сгенерированное с помощью POI, вы также можете просмотреть полученный XML так же, как и какие различия, если результаты не так ожидаются.

 Смежные вопросы

  • Нет связанных вопросов^_^