Follow-on from r713909 (bug 46174) - fixing Name to support general formulas
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@717882 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2e2062d99a
commit
647a9c8d73
@ -37,17 +37,24 @@ public interface Name {
|
||||
void setNameName(String nameName);
|
||||
|
||||
/**
|
||||
* gets the reference of the named range
|
||||
* @return reference of the named range
|
||||
* @deprecated (Nov 2008) Misleading name. Use {@link #getFormula()} instead.
|
||||
*/
|
||||
String getReference();
|
||||
|
||||
/**
|
||||
* sets the reference of this named range
|
||||
* @param ref the reference to set
|
||||
* @deprecated (Nov 2008) Misleading name. Use {@link #setFormula(String)} instead.
|
||||
*/
|
||||
void setReference(String ref);
|
||||
|
||||
/**
|
||||
* @return the formula text defining this name
|
||||
*/
|
||||
String getFormula();
|
||||
|
||||
/**
|
||||
* Sets the formula text defining this name
|
||||
*/
|
||||
void setFormula(String formulaText);
|
||||
/**
|
||||
* Checks if this name is a function name
|
||||
*
|
||||
|
@ -18,8 +18,8 @@ package org.apache.poi.xssf.usermodel;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Name;
|
||||
import org.apache.poi.ss.util.AreaReference;
|
||||
import org.apache.poi.util.POILogger;
|
||||
import org.apache.poi.util.POILogFactory;
|
||||
import org.apache.poi.util.POILogger;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
|
||||
|
||||
/**
|
||||
@ -50,8 +50,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
|
||||
* @author Nick Burch
|
||||
* @author Yegor Kozlov
|
||||
*/
|
||||
public class XSSFName implements Name {
|
||||
private static POILogger logger = POILogFactory.getLogger(XSSFWorkbook.class);
|
||||
public final class XSSFName implements Name {
|
||||
|
||||
/**
|
||||
* A built-in defined name that specifies the workbook's print area
|
||||
@ -153,28 +152,37 @@ public class XSSFName implements Name {
|
||||
ctName.setName(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated (Nov 2008) Misleading name. Use {@link #getFormula()} instead.
|
||||
*/
|
||||
public String getReference() {
|
||||
return getFormula();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated (Nov 2008) Misleading name. Use {@link #setFormula(String)} instead.
|
||||
*/
|
||||
public void setReference(String ref){
|
||||
setFormula(ref);
|
||||
}
|
||||
/**
|
||||
* Returns the reference of this named range, such as Sales!C20:C30.
|
||||
*
|
||||
* @return the reference of this named range
|
||||
*/
|
||||
public String getReference() {
|
||||
public String getFormula() {
|
||||
return ctName.getStringValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the reference of this named range, such as Sales!C20:C30.
|
||||
*
|
||||
* @param ref the reference to set
|
||||
* @param formulaText the reference to set
|
||||
* @throws IllegalArgumentException if the specified reference is unparsable
|
||||
*/
|
||||
public void setReference(String ref) {
|
||||
try {
|
||||
ref = AreaReference.isContiguous(ref) ? new AreaReference(ref).formatAsString() : ref;
|
||||
} catch (IllegalArgumentException e){
|
||||
logger.log(POILogger.WARN, "failed to parse cell reference. Setting raw value");
|
||||
}
|
||||
ctName.setStringValue(ref);
|
||||
public void setFormula(String formulaText) {
|
||||
// TODO parse formula and throw IllegalArgumentException if problem
|
||||
ctName.setStringValue(formulaText);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user