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;
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,13 +226,13 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
|
|||||||
return categoryAxis;
|
return categoryAxis;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<? extends XSSFChartAxis> getAxis() {
|
public List<? extends XSSFChartAxis> getAxis() {
|
||||||
if (axis.isEmpty() && hasAxis()) {
|
if (axis.isEmpty() && hasAxis()) {
|
||||||
parseAxis();
|
parseAxis();
|
||||||
}
|
}
|
||||||
return axis;
|
return axis;
|
||||||
}
|
}
|
||||||
|
|
||||||
public XSSFManualLayout getManualLayout() {
|
public XSSFManualLayout getManualLayout() {
|
||||||
return new XSSFManualLayout(this);
|
return new XSSFManualLayout(this);
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
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