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:
parent
f622530806
commit
1db7f3bd3b
@ -79,14 +79,13 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
|
||||
*/
|
||||
private CTChart chart;
|
||||
|
||||
List<XSSFChartAxis> axis;
|
||||
List<XSSFChartAxis> axis = new ArrayList<XSSFChartAxis>();
|
||||
|
||||
/**
|
||||
* Create a new SpreadsheetML chart
|
||||
*/
|
||||
protected XSSFChart() {
|
||||
super();
|
||||
axis = new ArrayList<XSSFChartAxis>();
|
||||
createChart();
|
||||
}
|
||||
|
||||
@ -227,12 +226,12 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
|
||||
return categoryAxis;
|
||||
}
|
||||
|
||||
public List<? extends XSSFChartAxis> getAxis() {
|
||||
if (axis.isEmpty() && hasAxis()) {
|
||||
parseAxis();
|
||||
}
|
||||
return axis;
|
||||
}
|
||||
public List<? extends XSSFChartAxis> getAxis() {
|
||||
if (axis.isEmpty() && hasAxis()) {
|
||||
parseAxis();
|
||||
}
|
||||
return axis;
|
||||
}
|
||||
|
||||
public XSSFManualLayout getManualLayout() {
|
||||
return new XSSFManualLayout(this);
|
||||
|
@ -17,9 +17,14 @@
|
||||
|
||||
package org.apache.poi.xssf.usermodel.charts;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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.xssf.XSSFTestDataSamples;
|
||||
import org.apache.poi.xssf.usermodel.*;
|
||||
|
||||
public final class TestXSSFChartAxis extends TestCase {
|
||||
@ -111,4 +116,21 @@ public final class TestXSSFChartAxis extends TestCase {
|
||||
axis.setMinorTickMark(AxisTickMark.CROSS);
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
BIN
test-data/spreadsheet/57362.xlsx
Normal file
BIN
test-data/spreadsheet/57362.xlsx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user