mirror of https://github.com/apache/poi.git
Ensure SpreadsheetVersion is set for AreaReferences
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1800208 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c80988698f
commit
5d4a4a7f28
|
@ -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
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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(<code>AreaReference</code>)} 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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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(<code>CellReference</code>, <code>CellReference</code>, <code>SpreadsheetVersion</code>)} 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(<code>SpreadsheetVersion</code>, 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(<code>SpreadsheetVersion</code>, 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<AreaReference> refs = new ArrayList<AreaReference>();
|
||||
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()]);
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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<SpreadsheetVersion> 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) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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())));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue