Bug 57362: Properly initialize chart axis when loading a workbook which already contains a chart.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1647317 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2014-12-22 14:16:23 +00:00
parent f622530806
commit 1db7f3bd3b
3 changed files with 30 additions and 9 deletions

View File

@ -79,14 +79,13 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
*/ */
private CTChart chart; private CTChart chart;
List<XSSFChartAxis> axis; List<XSSFChartAxis> axis = new ArrayList<XSSFChartAxis>();
/** /**
* Create a new SpreadsheetML chart * Create a new SpreadsheetML chart
*/ */
protected XSSFChart() { protected XSSFChart() {
super(); super();
axis = new ArrayList<XSSFChartAxis>();
createChart(); createChart();
} }

View File

@ -17,9 +17,14 @@
package org.apache.poi.xssf.usermodel.charts; package org.apache.poi.xssf.usermodel.charts;
import java.util.List;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.charts.*; import org.apache.poi.ss.usermodel.charts.*;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.usermodel.*; import org.apache.poi.xssf.usermodel.*;
public final class TestXSSFChartAxis extends TestCase { public final class TestXSSFChartAxis extends TestCase {
@ -111,4 +116,21 @@ public final class TestXSSFChartAxis extends TestCase {
axis.setMinorTickMark(AxisTickMark.CROSS); axis.setMinorTickMark(AxisTickMark.CROSS);
assertEquals(AxisTickMark.CROSS, axis.getMinorTickMark()); assertEquals(AxisTickMark.CROSS, axis.getMinorTickMark());
} }
public void testGetChartAxisBug57362() {
//Load existing excel with some chart on it having primary and secondary axis.
final Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("57362.xlsx");
final Sheet sh = workbook.getSheetAt(0);
final XSSFSheet xsh = (XSSFSheet) sh;
final XSSFDrawing drawing = xsh.createDrawingPatriarch();
final XSSFChart chart = drawing.getCharts().get(0);
final List<? extends XSSFChartAxis> axisList = chart.getAxis();
assertEquals(4, axisList.size());
assertNotNull(axisList.get(0));
assertNotNull(axisList.get(1));
assertNotNull(axisList.get(2));
assertNotNull(axisList.get(3));
}
} }

Binary file not shown.