diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateTable.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateTable.java
index a2cc063568..42ff8fbb72 100644
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateTable.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateTable.java
@@ -19,6 +19,7 @@ package org.apache.poi.xssf.usermodel.examples;
import java.io.FileOutputStream;
import java.io.IOException;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
@@ -80,8 +81,8 @@ public class CreateTable {
table.addColumn();
// Set which area the table should be placed in
- AreaReference reference = new AreaReference(new CellReference(0, 0),
- new CellReference(2,2));
+ AreaReference reference = wb.getCreationHelper().createAreaReference(
+ new CellReference(0, 0), new CellReference(2, 2));
table.setCellReferences(reference);
// Save
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java b/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java
index 027a11f22d..754930f13b 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java
@@ -20,6 +20,8 @@ package org.apache.poi.hssf.usermodel;
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.hssf.record.common.ExtendedColor;
import org.apache.poi.ss.usermodel.CreationHelper;
+import org.apache.poi.ss.util.AreaReference;
+import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.Internal;
public class HSSFCreationHelper implements CreationHelper {
@@ -75,4 +77,21 @@ public class HSSFCreationHelper implements CreationHelper {
public HSSFClientAnchor createClientAnchor(){
return new HSSFClientAnchor();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AreaReference createAreaReference(String reference) {
+ return new AreaReference(reference, workbook.getSpreadsheetVersion());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AreaReference createAreaReference(CellReference topLeft, CellReference bottomRight) {
+ return new AreaReference(topLeft, bottomRight, workbook.getSpreadsheetVersion());
+ }
+
}
diff --git a/src/java/org/apache/poi/hssf/util/AreaReference.java b/src/java/org/apache/poi/hssf/util/AreaReference.java
index 3474abff7b..3e3b26e229 100644
--- a/src/java/org/apache/poi/hssf/util/AreaReference.java
+++ b/src/java/org/apache/poi/hssf/util/AreaReference.java
@@ -17,6 +17,8 @@
package org.apache.poi.hssf.util;
+import org.apache.poi.ss.SpreadsheetVersion;
+
/**
* @deprecated POI 3.15 beta 3. Use {@link org.apache.poi.ss.util.AreaReference} instead.
*/
@@ -28,7 +30,7 @@ public final class AreaReference extends org.apache.poi.ss.util.AreaReference {
* The area reference must be contiguous (i.e. represent a single rectangle, not a union of rectangles)
*/
public AreaReference(String reference) {
- super(reference);
+ super(reference, SpreadsheetVersion.EXCEL97);
}
/**
diff --git a/src/java/org/apache/poi/ss/formula/FormulaParser.java b/src/java/org/apache/poi/ss/formula/FormulaParser.java
index cdfc3536db..7af8668b2e 100644
--- a/src/java/org/apache/poi/ss/formula/FormulaParser.java
+++ b/src/java/org/apache/poi/ss/formula/FormulaParser.java
@@ -817,7 +817,7 @@ public final class FormulaParser {
CellReference topLeft = new CellReference(actualStartRow, actualStartCol);
CellReference bottomRight = new CellReference(actualEndRow, actualEndCol);
SheetIdentifier sheetIden = new SheetIdentifier( null, new NameIdentifier(sheetName, true));
- Ptg ptg = _book.get3DReferencePtg(new AreaReference(topLeft, bottomRight), sheetIden);
+ Ptg ptg = _book.get3DReferencePtg(new AreaReference(topLeft, bottomRight, _ssVersion), sheetIden);
return new ParseNode(ptg);
}
@@ -997,7 +997,7 @@ public final class FormulaParser {
if (part1.isColumn()) {
return AreaReference.getWholeColumn(_ssVersion, part1.getRep(), part2.getRep());
}
- return new AreaReference(part1.getCellReference(), part2.getCellReference());
+ return new AreaReference(part1.getCellReference(), part2.getCellReference(), _ssVersion);
}
/**
diff --git a/src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java b/src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java
index 7bf64c0675..3eeddadc7d 100644
--- a/src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java
+++ b/src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java
@@ -17,6 +17,7 @@
package org.apache.poi.ss.formula.ptg;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.ExternSheetReferenceToken;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
@@ -41,7 +42,7 @@ public final class Area3DPtg extends AreaPtgBase implements WorkbookDependentFor
public Area3DPtg(String arearef, int externIdx) {
- super(new AreaReference(arearef));
+ super(new AreaReference(arearef, SpreadsheetVersion.EXCEL97));
setExternSheetIndex(externIdx);
}
diff --git a/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java b/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java
index 2916211b64..abb2dfaede 100644
--- a/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java
+++ b/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java
@@ -17,6 +17,7 @@
package org.apache.poi.ss.formula.ptg;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.SheetIdentifier;
import org.apache.poi.ss.formula.SheetNameFormatter;
import org.apache.poi.ss.formula.SheetRangeIdentifier;
@@ -37,7 +38,7 @@ public final class Area3DPxg extends AreaPtgBase implements Pxg3D {
private String lastSheetName;
public Area3DPxg(int externalWorkbookNumber, SheetIdentifier sheetName, String arearef) {
- this(externalWorkbookNumber, sheetName, new AreaReference(arearef));
+ this(externalWorkbookNumber, sheetName, new AreaReference(arearef, SpreadsheetVersion.EXCEL2007));
}
public Area3DPxg(int externalWorkbookNumber, SheetIdentifier sheetName, AreaReference arearef) {
super(arearef);
@@ -51,7 +52,7 @@ public final class Area3DPxg extends AreaPtgBase implements Pxg3D {
}
public Area3DPxg(SheetIdentifier sheetName, String arearef) {
- this(sheetName, new AreaReference(arearef));
+ this(sheetName, new AreaReference(arearef, SpreadsheetVersion.EXCEL2007));
}
public Area3DPxg(SheetIdentifier sheetName, AreaReference arearef) {
this(-1, sheetName, arearef);
diff --git a/src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java b/src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java
index a0bb8f696e..81cac4e043 100644
--- a/src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java
+++ b/src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java
@@ -17,8 +17,10 @@
package org.apache.poi.ss.formula.ptg;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.util.LittleEndianInput;
+import org.apache.poi.util.Removal;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
@@ -30,15 +32,24 @@ public final class AreaPtg extends Area2DPtgBase {
public AreaPtg(int firstRow, int lastRow, int firstColumn, int lastColumn, boolean firstRowRelative, boolean lastRowRelative, boolean firstColRelative, boolean lastColRelative) {
super(firstRow, lastRow, firstColumn, lastColumn, firstRowRelative, lastRowRelative, firstColRelative, lastColRelative);
}
+
public AreaPtg(LittleEndianInput in) {
super(in);
}
- public AreaPtg(String arearef) {
- super(new AreaReference(arearef));
- }
- public AreaPtg(AreaReference areaRef) {
- super(areaRef);
- }
+
+ /**
+ * @deprecated use {@link #AreaPtg(AreaReference
)} instead
+ */
+ @Deprecated()
+ @Removal(version="3.19")
+ public AreaPtg(String arearef) {
+ this(new AreaReference(arearef, SpreadsheetVersion.EXCEL97));
+ }
+
+ public AreaPtg(AreaReference arearef) {
+ super(arearef);
+ }
+
@Override
protected byte getSid() {
return sid;
diff --git a/src/java/org/apache/poi/ss/formula/ptg/AreaPtgBase.java b/src/java/org/apache/poi/ss/formula/ptg/AreaPtgBase.java
index 816287620c..21c19ccd14 100644
--- a/src/java/org/apache/poi/ss/formula/ptg/AreaPtgBase.java
+++ b/src/java/org/apache/poi/ss/formula/ptg/AreaPtgBase.java
@@ -287,7 +287,7 @@ public abstract class AreaPtgBase extends OperandPtg implements AreaI {
CellReference botRight = new CellReference(getLastRow(),getLastColumn(),!isLastRowRelative(),!isLastColRelative());
if(AreaReference.isWholeColumnReference(SpreadsheetVersion.EXCEL97, topLeft, botRight)) {
- return (new AreaReference(topLeft, botRight)).formatAsString();
+ return (new AreaReference(topLeft, botRight, SpreadsheetVersion.EXCEL97)).formatAsString();
}
return topLeft.formatAsString() + ":" + botRight.formatAsString();
}
diff --git a/src/java/org/apache/poi/ss/usermodel/CreationHelper.java b/src/java/org/apache/poi/ss/usermodel/CreationHelper.java
index 36cfb1deab..004025db10 100644
--- a/src/java/org/apache/poi/ss/usermodel/CreationHelper.java
+++ b/src/java/org/apache/poi/ss/usermodel/CreationHelper.java
@@ -17,6 +17,8 @@
package org.apache.poi.ss.usermodel;
import org.apache.poi.common.usermodel.HyperlinkType;
+import org.apache.poi.ss.util.AreaReference;
+import org.apache.poi.ss.util.CellReference;
/**
* An object that handles instantiating concrete
@@ -66,4 +68,22 @@ public interface CreationHelper {
* @see org.apache.poi.ss.usermodel.Drawing
*/
ClientAnchor createClientAnchor();
+
+ /**
+ * Creates an AreaReference.
+ *
+ * @param reference cell reference
+ * @return an AreaReference instance
+ */
+ AreaReference createAreaReference(String reference);
+
+ /**
+ * Creates an area ref from a pair of Cell References..
+ *
+ * @param topLeft cell reference
+ * @param bottomRight cell reference
+ * @return an AreaReference instance
+ */
+ AreaReference createAreaReference(CellReference topLeft, CellReference bottomRight);
+
}
diff --git a/src/java/org/apache/poi/ss/util/AreaReference.java b/src/java/org/apache/poi/ss/util/AreaReference.java
index 7e637b84f2..30e3335369 100644
--- a/src/java/org/apache/poi/ss/util/AreaReference.java
+++ b/src/java/org/apache/poi/ss/util/AreaReference.java
@@ -22,6 +22,7 @@ import java.util.List;
import java.util.StringTokenizer;
import org.apache.poi.ss.SpreadsheetVersion;
+import org.apache.poi.util.Removal;
public class AreaReference {
@@ -37,15 +38,6 @@ public class AreaReference {
private final CellReference _lastCell;
private final boolean _isSingleCell;
private final SpreadsheetVersion _version; // never null
-
- /**
- * @deprecated POI 3.13 beta 1. Prefer supplying a version.
- */
- @Deprecated
- public AreaReference(String reference) {
- this(reference, DEFAULT_SPREADSHEET_VERSION);
- // generateContiguous must be updated before this can be deleted.
- }
/**
* Create an area ref from a string representation. Sheet names containing special characters should be
@@ -116,9 +108,19 @@ public class AreaReference {
/**
* Creates an area ref from a pair of Cell References.
+ * @deprecated use {@link #new AreaReference(CellReference
, CellReference
, SpreadsheetVersion
)} instead
*/
+ @Deprecated
+ @Removal(version="3.19")
public AreaReference(CellReference topLeft, CellReference botRight) {
- _version = DEFAULT_SPREADSHEET_VERSION;
+ this(topLeft, botRight, DEFAULT_SPREADSHEET_VERSION);
+ }
+
+ /**
+ * Creates an area ref from a pair of Cell References.
+ */
+ public AreaReference(CellReference topLeft, CellReference botRight, SpreadsheetVersion version) {
+ _version = (null != version) ? version : DEFAULT_SPREADSHEET_VERSION;
boolean swapRows = topLeft.getRow() > botRight.getRow();
boolean swapCols = topLeft.getCol() > botRight.getCol();
if (swapRows || swapCols) {
@@ -166,7 +168,7 @@ public class AreaReference {
* unbroken) area, or is it made up of
* several different parts?
* (If it is, you will need to call
- * {@link #generateContiguous(String)})
+ * {@link #generateContiguous(SpreadsheetVersion
, String)})
*/
public static boolean isContiguous(String reference) {
// If there's a sheet name, strip it off
@@ -216,15 +218,29 @@ public class AreaReference {
}
/**
- * Takes a non-contiguous area reference, and
- * returns an array of contiguous area references.
+ * Takes a non-contiguous area reference, and returns an array of contiguous area references
+ * @return an array of contiguous area references.
+ * @deprecated use {@link #generateContiguous(SpreadsheetVersion
, String)} instead
*/
+ @Deprecated
+ @Removal(version="3.19")
public static AreaReference[] generateContiguous(String reference) {
+ return generateContiguous(DEFAULT_SPREADSHEET_VERSION, reference);
+ }
+
+ /**
+ * Takes a non-contiguous area reference, and returns an array of contiguous area references
+ * @return an array of contiguous area references.
+ */
+ public static AreaReference[] generateContiguous(SpreadsheetVersion version, String reference) {
+ if (null == version) {
+ version = DEFAULT_SPREADSHEET_VERSION; // how the code used to behave.
+ }
List refs = new ArrayList();
StringTokenizer st = new StringTokenizer(reference, ",");
while(st.hasMoreTokens()) {
refs.add(
- new AreaReference(st.nextToken())
+ new AreaReference(st.nextToken(), version)
);
}
return refs.toArray(new AreaReference[refs.size()]);
diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCreationHelper.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCreationHelper.java
index f2bc5104af..a4b0e2e303 100644
--- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCreationHelper.java
+++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCreationHelper.java
@@ -23,6 +23,8 @@ import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.ExtendedColor;
import org.apache.poi.ss.usermodel.Hyperlink;
+import org.apache.poi.ss.util.AreaReference;
+import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
@@ -79,4 +81,21 @@ public class SXSSFCreationHelper implements CreationHelper {
public ClientAnchor createClientAnchor() {
return helper.createClientAnchor();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AreaReference createAreaReference(String reference) {
+ return new AreaReference(reference, wb.getSpreadsheetVersion());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AreaReference createAreaReference(CellReference topLeft, CellReference bottomRight) {
+ return new AreaReference(topLeft, bottomRight, wb.getSpreadsheetVersion());
+ }
+
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFClientAnchor.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFClientAnchor.java
index 6a8e542e19..42552b362c 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFClientAnchor.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFClientAnchor.java
@@ -18,13 +18,12 @@
package org.apache.poi.xssf.usermodel;
import org.apache.poi.ss.usermodel.ClientAnchor;
+import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
import org.apache.poi.util.Internal;
-import org.apache.poi.util.Removal;
import org.apache.poi.util.Units;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPoint2D;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker;
-import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType;
/**
* A client anchor is attached to an excel worksheet. It anchors against:
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
index e384650afc..1c89d39a17 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
@@ -19,6 +19,8 @@ package org.apache.poi.xssf.usermodel;
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Hyperlink;
+import org.apache.poi.ss.util.AreaReference;
+import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.Internal;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
@@ -86,4 +88,20 @@ public class XSSFCreationHelper implements CreationHelper {
public XSSFClientAnchor createClientAnchor() {
return new XSSFClientAnchor();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AreaReference createAreaReference(String reference) {
+ return new AreaReference(reference, workbook.getSpreadsheetVersion());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AreaReference createAreaReference(CellReference topLeft, CellReference bottomRight) {
+ return new AreaReference(topLeft, bottomRight, workbook.getSpreadsheetVersion());
+ }
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java
index 5066ff7d01..d24e868af8 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java
@@ -146,7 +146,8 @@ public class XSSFPivotCacheDefinition extends POIXMLDocumentPart{
for (XSSFTable table : sheet.getTables()) {
// TODO: case-sensitive?
if (name.equals(table.getName())) {
- return new AreaReference(table.getStartCellReference(), table.getEndCellReference());
+ return new AreaReference(table.getStartCellReference(), table.getEndCellReference(),
+ SpreadsheetVersion.EXCEL2007);
}
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java
index 6f9009de28..8b640590be 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java
@@ -28,6 +28,7 @@ import java.util.List;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DataConsolidateFunction;
@@ -431,7 +432,8 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
protected void createSourceReferences(CellReference position, Sheet sourceSheet, PivotTableReferenceConfigurator refConfig){
//Get cell one to the right and one down from position, add both to AreaReference and set pivot table location.
- AreaReference destination = new AreaReference(position, new CellReference(position.getRow()+1, position.getCol()+1));
+ AreaReference destination = new AreaReference(position, new CellReference(
+ position.getRow()+1, position.getCol()+1), SpreadsheetVersion.EXCEL2007);
CTLocation location;
if(pivotTableDefinition.getLocation() == null) {
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java
index 16fae4b437..f0fcd02520 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java
@@ -30,6 +30,7 @@ import java.util.Locale;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Table;
@@ -349,7 +350,8 @@ public class XSSFTable extends POIXMLDocumentPart implements Table {
public AreaReference getCellReferences() {
return new AreaReference(
getStartCellReference(),
- getEndCellReference()
+ getEndCellReference(),
+ SpreadsheetVersion.EXCEL2007
);
}
/**
diff --git a/src/ooxml/testcases/org/apache/poi/ss/formula/TestStructuredReferences.java b/src/ooxml/testcases/org/apache/poi/ss/formula/TestStructuredReferences.java
index b60664ad02..a17c9d08ae 100644
--- a/src/ooxml/testcases/org/apache/poi/ss/formula/TestStructuredReferences.java
+++ b/src/ooxml/testcases/org/apache/poi/ss/formula/TestStructuredReferences.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.CellValue;
@@ -91,7 +92,9 @@ public class TestStructuredReferences {
// update Table
final XSSFTable table = wb.getTable("\\_Prime.1");
- final AreaReference newArea = new AreaReference(table.getStartCellReference(), new CellReference(table.getEndRowIndex() + 1, table.getEndColIndex()));
+ final AreaReference newArea = wb.getCreationHelper().createAreaReference(
+ table.getStartCellReference(),
+ new CellReference(table.getEndRowIndex() + 1, table.getEndColIndex()));
String newAreaStr = newArea.formatAsString();
table.getCTTable().setRef(newAreaStr);
table.getCTTable().getAutoFilter().setRef(newAreaStr);
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java
index 445812566f..0489afcac0 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/BaseTestXSSFPivotTable.java
@@ -290,7 +290,7 @@ public abstract class BaseTestXSSFPivotTable {
assertNotNull(original);
assertNotNull(offset);
- AreaReference source = new AreaReference("ORIGinal!A1:C2", _testDataProvider.getSpreadsheetVersion());
+ AreaReference source = wb.getCreationHelper().createAreaReference("ORIGinal!A1:C2");
// create a pivot table on the same sheet, case insensitive
original.createPivotTable(source, new CellReference("W1"));
// create a pivot table on a different sheet, case insensitive
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
index e2bbebb614..629ded956c 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
@@ -64,7 +64,6 @@ import org.apache.poi.openxml4j.opc.PackagingURIHelper;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.WorkbookEvaluator;
import org.apache.poi.ss.formula.eval.ErrorEval;
import org.apache.poi.ss.formula.eval.NumberEval;
@@ -1346,7 +1345,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
Name name = wb.getName("Intekon.ProdCodes");
assertEquals("'Abc,1'!$A$1:$A$2", name.getRefersToFormula());
- AreaReference ref = new AreaReference(name.getRefersToFormula(), SpreadsheetVersion.EXCEL2007);
+ AreaReference ref = wb.getCreationHelper().createAreaReference(name.getRefersToFormula());
assertEquals(0, ref.getFirstCell().getRow());
assertEquals(0, ref.getFirstCell().getCol());
assertEquals(1, ref.getLastCell().getRow());
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTableRef.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTableRef.java
index ec0c5c6c1a..2eb7253b7d 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTableRef.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTableRef.java
@@ -17,7 +17,6 @@
package org.apache.poi.xssf.usermodel;
-import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.AreaReference;
@@ -66,7 +65,7 @@ public class TestXSSFPivotTableRef extends BaseTestXSSFPivotTable {
Cell cell12 = row1.createCell(3);
cell12.setCellValue(12.12);
- AreaReference source = new AreaReference("A1:C2", SpreadsheetVersion.EXCEL2007);
+ AreaReference source = wb.getCreationHelper().createAreaReference("A1:C2");
pivotTable = sheet.createPivotTable(source, new CellReference("H5"));
XSSFSheet offsetSheet = wb.createSheet();
@@ -105,7 +104,8 @@ public class TestXSSFPivotTableRef extends BaseTestXSSFPivotTable {
Cell tableCell_4_3 = tableRow_4.createCell(4);
tableCell_4_3.setCellValue(100);
- AreaReference offsetSource = new AreaReference(new CellReference("C2"), new CellReference("E4"));
+ AreaReference offsetSource = wb.getCreationHelper().createAreaReference(
+ new CellReference("C2"), new CellReference("E4"));
offsetPivotTable = offsetSheet.createPivotTable(offsetSource, new CellReference("C6"));
}
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
index 25de3892c6..d1c975d637 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
@@ -40,7 +40,6 @@ import org.apache.poi.POIXMLException;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.poifs.crypt.HashAlgorithm;
-import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.AutoFilter;
import org.apache.poi.ss.usermodel.BaseTestXSheet;
import org.apache.poi.ss.usermodel.Cell;
@@ -56,7 +55,6 @@ import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellAddress;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference;
@@ -1337,10 +1335,12 @@ public final class TestXSSFSheet extends BaseTestXSheet {
assertNotNull(wb);
assertNotNull(sheet);
- XSSFPivotTable pivotTable = sheet.createPivotTable(new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007), new CellReference("H5"));
+ XSSFPivotTable pivotTable = sheet.createPivotTable(wb.getCreationHelper().createAreaReference("A1:B2"),
+ new CellReference("H5"));
assertNotNull(pivotTable);
assertTrue(wb.getPivotTables().size() > 0);
- XSSFPivotTable pivotTable2 = sheet.createPivotTable(new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007), new CellReference("L5"), sheet);
+ XSSFPivotTable pivotTable2 = sheet.createPivotTable(wb.getCreationHelper().createAreaReference("A1:B2"),
+ new CellReference("L5"), sheet);
assertNotNull(pivotTable2);
assertTrue(wb.getPivotTables().size() > 1);
wb.close();
@@ -1353,12 +1353,13 @@ public final class TestXSSFSheet extends BaseTestXSheet {
assertNotNull(wb);
assertNotNull(sheet);
- XSSFPivotTable pivotTable = sheet.createPivotTable(new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007), new CellReference("H5"));
+ XSSFPivotTable pivotTable = sheet.createPivotTable(wb.getCreationHelper().createAreaReference("A1:B2"), new CellReference("H5"));
assertNotNull(pivotTable);
assertTrue(wb.getPivotTables().size() > 0);
assertNotNull(wb);
XSSFSheet sheet2 = wb.createSheet();
- XSSFPivotTable pivotTable2 = sheet2.createPivotTable(new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007), new CellReference("H5"), sheet);
+ XSSFPivotTable pivotTable2 = sheet2.createPivotTable(wb.getCreationHelper().createAreaReference("A1:B2"),
+ new CellReference("H5"), sheet);
assertNotNull(pivotTable2);
assertTrue(wb.getPivotTables().size() > 1);
wb.close();
@@ -1371,7 +1372,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
assertNotNull(wb);
assertNotNull(sheet);
- XSSFPivotTable pivotTable = sheet.createPivotTable(new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007), new CellReference("H5"));
+ XSSFPivotTable pivotTable = sheet.createPivotTable(wb.getCreationHelper().createAreaReference("A1:B2"), new CellReference("H5"));
assertNotNull(pivotTable);
assertTrue(wb.getPivotTables().size() > 0);
wb.close();
@@ -1384,7 +1385,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
XSSFSheet sheet2 = wb.createSheet();
XSSFPivotTable pivotTable = sheet2.createPivotTable
- (new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007), new CellReference("H5"), sheet1);
+ (wb.getCreationHelper().createAreaReference("A1:B2"), new CellReference("H5"), sheet1);
assertEquals(0, pivotTable.getRowLabelColumns().size());
assertEquals(1, wb.getPivotTables().size());
@@ -1400,7 +1401,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
XSSFSheet sheet2 = wb.createSheet("TEST");
XSSFPivotTable pivotTable = sheet2.createPivotTable(
- new AreaReference(sheet.getSheetName()+"!A$1:B$2", SpreadsheetVersion.EXCEL2007),
+ wb.getCreationHelper().createAreaReference(sheet.getSheetName()+"!A$1:B$2"),
new CellReference("H5"));
assertEquals(0, pivotTable.getRowLabelColumns().size());
wb.close();
@@ -1413,7 +1414,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
XSSFSheet sheet2 = wb.createSheet("TEST");
sheet2.createPivotTable(
- new AreaReference(sheet.getSheetName()+"!A$1:B$2", SpreadsheetVersion.EXCEL2007),
+ wb.getCreationHelper().createAreaReference(sheet.getSheetName()+"!A$1:B$2"),
new CellReference("H5"),
sheet2);
wb.close();
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
index bbf49bc011..6b916b1e6f 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
@@ -31,15 +31,14 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.IOUtils;
import org.apache.poi.util.TempFile;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.junit.Test;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumns;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableStyleInfo;
public final class TestXSSFTable {
@@ -267,7 +266,8 @@ public final class TestXSSFTable {
assertEquals(new CellReference("C1"), table.getStartCellReference());
assertEquals(new CellReference("M3"), table.getEndCellReference());
-
+
+ IOUtils.closeQuietly(wb);
}
@Test
@@ -288,6 +288,8 @@ public final class TestXSSFTable {
// update cell references to clear the cache
table.updateReferences();
assertEquals(11, table.getRowCount());
+
+ IOUtils.closeQuietly(wb);
}
@Test
@@ -350,13 +352,14 @@ public final class TestXSSFTable {
t.addColumn();
t.addColumn();
t.addColumn();
- t.setCellReferences(new AreaReference(
+ t.setCellReferences(wb.getCreationHelper().createAreaReference(
new CellReference(c1), new CellReference(c6)
));
// Save and re-load
- wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
- s = wb.getSheetAt(0);
+ XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ IOUtils.closeQuietly(wb);
+ s = wb2.getSheetAt(0);
// Check
assertEquals(1, s.getTables().size());
@@ -370,6 +373,6 @@ public final class TestXSSFTable {
assertEquals("ABCD", t.getCTTable().getTableColumns().getTableColumnArray(2).getName());
// Done
- wb.close();
+ IOUtils.closeQuietly(wb2);
}
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
index b6360a6bb1..8b0c335330 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
@@ -794,7 +794,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
Cell cell9 = row3.createCell(2);
cell9.setCellValue("Bepa");
- AreaReference source = new AreaReference("A1:B2", SpreadsheetVersion.EXCEL2007);
+ AreaReference source = wb.getCreationHelper().createAreaReference("A1:B2");
sheet.createPivotTable(source, new CellReference("H5"));
}
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java
index 16333fc67b..cc420feedd 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java
@@ -22,6 +22,7 @@ import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.record.NameRecord;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.FormulaType;
import org.apache.poi.ss.formula.ptg.Ptg;
import org.apache.poi.ss.usermodel.BaseTestNamedRange;
@@ -197,7 +198,6 @@ public final class TestHSSFName extends BaseTestNamedRange {
workbook.close();
}
- @SuppressWarnings("deprecation")
@Test
public void testDeletedReference() throws Exception {
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("24207.xls");
@@ -206,7 +206,7 @@ public final class TestHSSFName extends BaseTestNamedRange {
HSSFName name1 = wb.getNameAt(0);
assertEquals("a", name1.getNameName());
assertEquals("Sheet1!$A$1", name1.getRefersToFormula());
- new AreaReference(name1.getRefersToFormula());
+ wb.getCreationHelper().createAreaReference(name1.getRefersToFormula());
assertTrue("Successfully constructed first reference", true);
HSSFName name2 = wb.getNameAt(1);
@@ -214,7 +214,7 @@ public final class TestHSSFName extends BaseTestNamedRange {
assertEquals("Sheet1!#REF!", name2.getRefersToFormula());
assertTrue(name2.isDeleted());
try {
- new AreaReference(name2.getRefersToFormula());
+ wb.getCreationHelper().createAreaReference(name2.getRefersToFormula());
fail("attempt to supply an invalid reference to AreaReference constructor results in exception");
} catch (IllegalArgumentException e) { // TODO - use a stronger typed exception for this condition
// expected during successful test
diff --git a/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java b/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java
index 4bc3d07412..2819289ea9 100644
--- a/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java
+++ b/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java
@@ -25,6 +25,7 @@ import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.model.InternalWorkbook;
import org.apache.poi.hssf.record.NameRecord;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.ptg.Area3DPtg;
import org.apache.poi.ss.formula.ptg.MemFuncPtg;
import org.apache.poi.ss.formula.ptg.Ptg;
@@ -38,13 +39,11 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.TestHSSFWorkbook;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
-/**
- *
- */
+
public final class TestAreaReference extends TestCase {
public void testAreaRef1() {
- AreaReference ar = new AreaReference("$A$1:$B$2");
+ AreaReference ar = new AreaReference("$A$1:$B$2", SpreadsheetVersion.EXCEL97);
assertFalse("Two cells expected", ar.isSingleCell());
CellReference cf = ar.getFirstCell();
assertTrue("row is 4",cf.getRow()==0);
@@ -87,14 +86,14 @@ public final class TestAreaReference extends TestCase {
public void testReferenceWithSheet() {
AreaReference ar;
- ar = new AreaReference("Tabelle1!B5:B5");
+ ar = new AreaReference("Tabelle1!B5:B5", SpreadsheetVersion.EXCEL97);
assertTrue(ar.isSingleCell());
TestCellReference.confirmCell(ar.getFirstCell(), "Tabelle1", 4, 1, false, false, "Tabelle1!B5");
assertEquals(1, ar.getAllReferencedCells().length);
- ar = new AreaReference("Tabelle1!$B$5:$B$7");
+ ar = new AreaReference("Tabelle1!$B$5:$B$7", SpreadsheetVersion.EXCEL97);
assertFalse(ar.isSingleCell());
TestCellReference.confirmCell(ar.getFirstCell(), "Tabelle1", 4, 1, true, true, "Tabelle1!$B$5");
@@ -123,22 +122,22 @@ public final class TestAreaReference extends TestCase {
assertFalse(AreaReference.isContiguous(refDC3D));
// Check we can only create contiguous entries
- new AreaReference(refSimple);
- new AreaReference(ref2D);
+ new AreaReference(refSimple, SpreadsheetVersion.EXCEL97);
+ new AreaReference(ref2D, SpreadsheetVersion.EXCEL97);
try {
- new AreaReference(refDCSimple);
+ new AreaReference(refDCSimple, SpreadsheetVersion.EXCEL97);
fail();
} catch(IllegalArgumentException e) {
// expected during successful test
}
try {
- new AreaReference(refDC2D);
+ new AreaReference(refDC2D, SpreadsheetVersion.EXCEL97);
fail();
} catch(IllegalArgumentException e) {
// expected during successful test
}
try {
- new AreaReference(refDC3D);
+ new AreaReference(refDC3D, SpreadsheetVersion.EXCEL97);
fail();
} catch(IllegalArgumentException e) {
// expected during successful test
@@ -147,17 +146,17 @@ public final class TestAreaReference extends TestCase {
// Test that we split as expected
AreaReference[] refs;
- refs = AreaReference.generateContiguous(refSimple);
+ refs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, refSimple);
assertEquals(1, refs.length);
assertTrue(refs[0].isSingleCell());
assertEquals("$C$10", refs[0].formatAsString());
- refs = AreaReference.generateContiguous(ref2D);
+ refs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, ref2D);
assertEquals(1, refs.length);
assertFalse(refs[0].isSingleCell());
assertEquals("$C$10:$D$11", refs[0].formatAsString());
- refs = AreaReference.generateContiguous(refDCSimple);
+ refs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, refDCSimple);
assertEquals(3, refs.length);
assertTrue(refs[0].isSingleCell());
assertTrue(refs[1].isSingleCell());
@@ -166,7 +165,7 @@ public final class TestAreaReference extends TestCase {
assertEquals("$D$12", refs[1].formatAsString());
assertEquals("$E$14", refs[2].formatAsString());
- refs = AreaReference.generateContiguous(refDC2D);
+ refs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, refDC2D);
assertEquals(3, refs.length);
assertFalse(refs[0].isSingleCell());
assertTrue(refs[1].isSingleCell());
@@ -175,7 +174,7 @@ public final class TestAreaReference extends TestCase {
assertEquals("$D$12", refs[1].formatAsString());
assertEquals("$E$14:$E$20", refs[2].formatAsString());
- refs = AreaReference.generateContiguous(refDC3D);
+ refs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, refDC3D);
assertEquals(2, refs.length);
assertFalse(refs[0].isSingleCell());
assertFalse(refs[0].isSingleCell());
@@ -230,7 +229,7 @@ public final class TestAreaReference extends TestCase {
// Check the parsing of the reference into cells
assertFalse(AreaReference.isContiguous(aNamedCell.getRefersToFormula()));
- AreaReference[] arefs = AreaReference.generateContiguous(aNamedCell.getRefersToFormula());
+ AreaReference[] arefs = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, aNamedCell.getRefersToFormula());
assertEquals(2, arefs.length);
assertEquals(refA, arefs[0].formatAsString());
assertEquals(refB, arefs[1].formatAsString());
@@ -250,16 +249,16 @@ public final class TestAreaReference extends TestCase {
public void testSpecialSheetNames() {
AreaReference ar;
- ar = new AreaReference("'Sheet A'!A1:A1");
+ ar = new AreaReference("'Sheet A'!A1:A1", SpreadsheetVersion.EXCEL97);
confirmAreaSheetName(ar, "Sheet A", "'Sheet A'!A1");
- ar = new AreaReference("'Hey! Look Here!'!A1:A1");
+ ar = new AreaReference("'Hey! Look Here!'!A1:A1", SpreadsheetVersion.EXCEL97);
confirmAreaSheetName(ar, "Hey! Look Here!", "'Hey! Look Here!'!A1");
- ar = new AreaReference("'O''Toole'!A1:B2");
+ ar = new AreaReference("'O''Toole'!A1:B2", SpreadsheetVersion.EXCEL97);
confirmAreaSheetName(ar, "O'Toole", "'O''Toole'!A1:B2");
- ar = new AreaReference("'one:many'!A1:B2");
+ ar = new AreaReference("'one:many'!A1:B2", SpreadsheetVersion.EXCEL97);
confirmAreaSheetName(ar, "one:many", "'one:many'!A1:B2");
}
@@ -274,9 +273,19 @@ public final class TestAreaReference extends TestCase {
confirmWholeColumnRef("$C:D", 2, 3, true, false);
confirmWholeColumnRef("AD:$AE", 29, 30, false, true);
}
+
+ @SuppressWarnings("deprecation")
+ public void testDeprecatedMethod() {
+ String refSimple = "$C$10:$C$10";
+ AreaReference[] arefs1 = AreaReference.generateContiguous(SpreadsheetVersion.EXCEL97, refSimple);
+ AreaReference[] arefs2 = AreaReference.generateContiguous(refSimple);
+ assertEquals(1, arefs1.length);
+ assertEquals(arefs1.length, arefs2.length);
+ assertEquals(arefs1[0].formatAsString(), arefs2[0].formatAsString());
+ }
private static void confirmWholeColumnRef(String ref, int firstCol, int lastCol, boolean firstIsAbs, boolean lastIsAbs) {
- AreaReference ar = new AreaReference(ref);
+ AreaReference ar = new AreaReference(ref, SpreadsheetVersion.EXCEL97);
confirmCell(ar.getFirstCell(), 0, firstCol, true, firstIsAbs);
confirmCell(ar.getLastCell(), 0xFFFF, lastCol, true, lastIsAbs);
}
diff --git a/src/testcases/org/apache/poi/ss/formula/eval/TestRangeEval.java b/src/testcases/org/apache/poi/ss/formula/eval/TestRangeEval.java
index 6a64436604..0a06627e38 100644
--- a/src/testcases/org/apache/poi/ss/formula/eval/TestRangeEval.java
+++ b/src/testcases/org/apache/poi/ss/formula/eval/TestRangeEval.java
@@ -20,10 +20,14 @@ package org.apache.poi.ss.formula.eval;
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.TwoDEval;
import org.apache.poi.ss.formula.ptg.AreaI;
import org.apache.poi.ss.formula.ptg.AreaI.OffsetArea;
@@ -54,15 +58,17 @@ public final class TestRangeEval extends TestCase {
createRefEval(refA),
createRefEval(refB),
};
- @SuppressWarnings("deprecation")
- AreaReference ar = new AreaReference(expectedAreaRef);
- ValueEval result = EvalInstances.Range.evaluate(args, 0, (short)0);
- assertTrue(result instanceof AreaEval);
- AreaEval ae = (AreaEval) result;
- assertEquals(ar.getFirstCell().getRow(), ae.getFirstRow());
- assertEquals(ar.getLastCell().getRow(), ae.getLastRow());
- assertEquals(ar.getFirstCell().getCol(), ae.getFirstColumn());
- assertEquals(ar.getLastCell().getCol(), ae.getLastColumn());
+ List versions = Arrays.asList(new SpreadsheetVersion[] {SpreadsheetVersion.EXCEL97, SpreadsheetVersion.EXCEL2007});
+ for(SpreadsheetVersion version : versions) {
+ AreaReference ar = new AreaReference(expectedAreaRef, version);
+ ValueEval result = EvalInstances.Range.evaluate(args, 0, (short)0);
+ assertTrue(result instanceof AreaEval);
+ AreaEval ae = (AreaEval) result;
+ assertEquals(ar.getFirstCell().getRow(), ae.getFirstRow());
+ assertEquals(ar.getLastCell().getRow(), ae.getLastRow());
+ assertEquals(ar.getFirstCell().getCol(), ae.getFirstColumn());
+ assertEquals(ar.getLastCell().getCol(), ae.getLastColumn());
+ }
}
private static ValueEval createRefEval(String refStr) {
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java
index 74b5a5fac1..21a43ae202 100644
--- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java
+++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java
@@ -500,8 +500,7 @@ public abstract class BaseTestNamedRange {
assertNotNull(aNamedCell);
// retrieve the cell at the named range and test its contents
- @SuppressWarnings("deprecation")
- AreaReference aref = new AreaReference(aNamedCell.getRefersToFormula());
+ AreaReference aref = wb.getCreationHelper().createAreaReference(aNamedCell.getRefersToFormula());
assertTrue("Should be exactly 1 cell in the named cell :'" +cellName+"'", aref.isSingleCell());
CellReference cref = aref.getFirstCell();
@@ -512,7 +511,6 @@ public abstract class BaseTestNamedRange {
Cell c = r.getCell(cref.getCol());
String contents = c.getRichStringCellValue().getString();
assertEquals("Contents of cell retrieved by its named reference", contents, cellValue);
-
wb.close();
}
diff --git a/src/testcases/org/apache/poi/ss/util/TestAreaReference.java b/src/testcases/org/apache/poi/ss/util/TestAreaReference.java
index de2226d6aa..d8416972c1 100644
--- a/src/testcases/org/apache/poi/ss/util/TestAreaReference.java
+++ b/src/testcases/org/apache/poi/ss/util/TestAreaReference.java
@@ -62,10 +62,4 @@ public class TestAreaReference extends TestCase {
assertEquals(SpreadsheetVersion.EXCEL2007.getLastColumnIndex(), newStyle.getLastCell().getCol());
assertEquals(1, newStyle.getLastCell().getRow());
}
-
- @SuppressWarnings("deprecation") // deliberate test for behaviour if deprecated constructor used.
- public void testFallbackToExcel97IfVersionNotSupplied() {
- assertTrue(new AreaReference("A:B").isWholeColumnReference());
- assertTrue(AreaReference.isWholeColumnReference(null, new CellReference("A$1"), new CellReference("A$" + SpreadsheetVersion.EXCEL97.getMaxRows())));
- }
}