diff --git a/src/documentation/content/xdocs/spreadsheet/how-to.xml b/src/documentation/content/xdocs/spreadsheet/how-to.xml index 8451813f0..d21be707e 100644 --- a/src/documentation/content/xdocs/spreadsheet/how-to.xml +++ b/src/documentation/content/xdocs/spreadsheet/how-to.xml @@ -182,6 +182,7 @@ wb.setSheetName(0, "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F " + // in case of plain ascii // wb.setSheetName(0, "HSSF Test"); // create a sheet with 30 rows (0-29) +int rownum; for (rownum = (short) 0; rownum < 30; rownum++) { // create a row diff --git a/src/documentation/content/xdocs/spreadsheet/quick-guide.xml b/src/documentation/content/xdocs/spreadsheet/quick-guide.xml index 2688bc9f2..e7d2ae798 100644 --- a/src/documentation/content/xdocs/spreadsheet/quick-guide.xml +++ b/src/documentation/content/xdocs/spreadsheet/quick-guide.xml @@ -1243,19 +1243,24 @@ Examples: Name namedCell = wb.createName(); namedCell.setNameName(cname); String reference = sname+"!A1:A1"; // area reference - namedCell.setReference(reference); + namedCell.setRefersToFormula(reference); // 2. create named range for a single cell using cellreference - Name namedCell = wb.createName(); - namedCell.setNameName(cname); + Name namedCel2 = wb.createName(); + namedCel2.setNameName(cname); String reference = sname+"!A1"; // cell reference - namedCell.setReference(reference); + namedCel2.setRefersToFormula(reference); // 3. create named range for an area using AreaReference - Name namedCell = wb.createName(); - namedCell.setNameName(cname); + Name namedCel3 = wb.createName(); + namedCel3.setNameName(cname); String reference = sname+"!A1:C5"; // area reference - namedCell.setReference(reference); + namedCel3.setRefersToFormula(reference); + + // 4. create named formula + Name namedCel4 = wb.createName(); + namedCel4.setNameName("my_sum"); + namedCel4.setRefersToFormula("SUM(sname+!$I$2:$I$6)");
Reading from Named Range / Named Cell @@ -1270,7 +1275,7 @@ Examples: Name aNamedCell = wb.getNameAt(namedCellIdx); // retrieve the cell at the named range and test its contents - AreaReference aref = new AreaReference(aNamedCell.getReference()); + AreaReference aref = new AreaReference(aNamedCell.getRefersToFormula()); CellReference[] crefs = aref.getAllReferencedCells(); for (int i=0; i<crefs.length; i++) { Sheet s = wb.getSheet(crefs[i].getSheetName()); @@ -1295,7 +1300,7 @@ Examples: // Retrieve the cell at the named range and test its contents // Will get back one AreaReference for C10, and // another for D12 to D14 - AreaReference[] arefs = AreaReference.generateContiguous(aNamedCell.getReference()); + AreaReference[] arefs = AreaReference.generateContiguous(aNamedCell.getRefersToFormula()); for (int i=0; i<arefs.length; i++) { // Only get the corners of the Area // (use arefs[i].getAllReferencedCells() to get all cells) @@ -1320,7 +1325,7 @@ Examples: if(name.isDeleted()){ //named range points to a deleted cell. } else { - AreaReference ref = new AreaReference(name.getReference()); + AreaReference ref = new AreaReference(name.getRefersToFormula()); } diff --git a/src/examples/src/org/apache/poi/ss/examples/LoanCalculator.java b/src/examples/src/org/apache/poi/ss/examples/LoanCalculator.java index 96bb5f165..3323c9e2d 100755 --- a/src/examples/src/org/apache/poi/ss/examples/LoanCalculator.java +++ b/src/examples/src/org/apache/poi/ss/examples/LoanCalculator.java @@ -267,38 +267,38 @@ public class LoanCalculator { name = wb.createName(); name.setNameName("Interest_Rate"); - name.setReference("'Loan Calculator'!$E$5"); + name.setRefersToFormula("'Loan Calculator'!$E$5"); name = wb.createName(); name.setNameName("Loan_Amount"); - name.setReference("'Loan Calculator'!$E$4"); + name.setRefersToFormula("'Loan Calculator'!$E$4"); name = wb.createName(); name.setNameName("Loan_Start"); - name.setReference("'Loan Calculator'!$E$7"); + name.setRefersToFormula("'Loan Calculator'!$E$7"); name = wb.createName(); name.setNameName("Loan_Years"); - name.setReference("'Loan Calculator'!$E$6"); + name.setRefersToFormula("'Loan Calculator'!$E$6"); name = wb.createName(); name.setNameName("Number_of_Payments"); - name.setReference("'Loan Calculator'!$E$10"); + name.setRefersToFormula("'Loan Calculator'!$E$10"); name = wb.createName(); name.setNameName("Monthly_Payment"); - name.setReference("-PMT(Interest_Rate/12,Number_of_Payments,Loan_Amount)"); + name.setRefersToFormula("-PMT(Interest_Rate/12,Number_of_Payments,Loan_Amount)"); name = wb.createName(); name.setNameName("Total_Cost"); - name.setReference("'Loan Calculator'!$E$12"); + name.setRefersToFormula("'Loan Calculator'!$E$12"); name = wb.createName(); name.setNameName("Total_Interest"); - name.setReference("'Loan Calculator'!$E$11"); + name.setRefersToFormula("'Loan Calculator'!$E$11"); name = wb.createName(); name.setNameName("Values_Entered"); - name.setReference("IF(Loan_Amount*Interest_Rate*Loan_Years*Loan_Start>0,1,0)"); + name.setRefersToFormula("IF(Loan_Amount*Interest_Rate*Loan_Years*Loan_Start>0,1,0)"); } } diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFName.java b/src/java/org/apache/poi/hssf/usermodel/HSSFName.java index bcd197720..cc2f44471 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFName.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFName.java @@ -62,8 +62,28 @@ public final class HSSFName implements Name { } /** - * sets the name of the named range + * Sets the name of the named range + * + *
The following is a list of syntax rules that you need to be aware of when you create and edit names.
+ *'My Sheet'!$A$3
8.3
HR!$A$1:$Z$345
SUM(Sheet1!A1,Sheet2!B2)
-PMT(Interest_Rate/12,Number_of_Payments,Loan_Amount)
+ * A name is a meaningful shorthand that makes it easier to understand the purpose of a + * cell reference, constant or a formula. + *
+ * Examples: + *+ */ public interface Name { - /** Get the sheets name which this named range is referenced to + /** + * Get the sheets name which this named range is referenced to + * * @return sheet name, which this named range refered to */ String getSheetName(); /** - * gets the name of the named range + * Gets the name of the named range + * * @return named range name */ String getNameName(); /** - * sets the name of the named range - * @param nameName named range name to set + * Sets the name of the named range + * + *+ * Sheet sheet = workbook.createSheet("Loan Calculator"); + * Name name; + * + * name = workbook.createName(); + * name.setNameName("Interest_Rate"); + * name.setRefersToFormula("'Loan Calculator'!$E$5"); + * + * name = wb.createName(); + * name.setNameName("Loan_Amount"); + * name.setRefersToFormula("'Loan Calculator'!$E$4"); + * + * name = wb.createName(); + * name.setNameName("Number_of_Payments"); + * name.setRefersToFormula("'Loan Calculator'!$E$10"); + * + * name = wb.createName(); + * name.setNameName("Monthly_Payment"); + * name.setRefersToFormula("-PMT(Interest_Rate/12,Number_of_Payments,Loan_Amount)"); + * + * name = wb.createName(); + * name.setNameName("Values_Entered"); + * name.setRefersToFormula("IF(Loan_Amount*Interest_Rate>0,1,0)"); + * + *
The following is a list of syntax rules that you need to be aware of when you create and edit names.
+ *'My Sheet'!$A$3
8.3
HR!$A$1:$Z$345
SUM(Sheet1!A1,Sheet2!B2)
-PMT(Interest_Rate/12,Number_of_Payments,Loan_Amount)
true
if the sheet displays Automatic Page Breaks.
*/
- void setAutobreaks(boolean b);
+ void setAutobreaks(boolean value);
/**
* Set whether to display the guts or not
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java
index 35b947ae4..fdcebbcc9 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java
@@ -152,7 +152,7 @@ public final class XSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
public Ptg[] getNameDefinition() {
- return FormulaParser.parse(_nameRecord.getReference(), _fpBook);
+ return FormulaParser.parse(_nameRecord.getRefersToFormula(), _fpBook);
}
public String getNameText() {
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java
index 2be7cffa5..1813892ba 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java
@@ -37,14 +37,14 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
* //applies to the entire workbook
* XSSFName name1 = wb.createName();
* name1.setNameName("FMLA");
- * name1.setReference("Sheet1!$B$3");
+ * name1.setRefersToFormula("Sheet1!$B$3");
*
* //applies to Sheet1
* XSSFName name2 = wb.createName();
* name2.setNameName("SheetLevelName");
* name2.setComment("This name is scoped to Sheet1");
* name2.setLocalSheetId(0);
- * name2.setReference("Sheet1!$B$3");
+ * name2.setRefersToFormula("Sheet1!$B$3");
*
*
*
@@ -153,25 +153,12 @@ public final 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 getFormula() {
+ public String getRefersToFormula() {
return ctName.getStringValue();
}
@@ -181,7 +168,7 @@ public final class XSSFName implements Name {
* @param formulaText the reference to set
* @throws IllegalArgumentException if the specified reference is unparsable
*/
- public void setFormula(String formulaText) {
+ public void setRefersToFormula(String formulaText) {
XSSFEvaluationWorkbook fpb = XSSFEvaluationWorkbook.create(workbook);
Ptg[] ptgs;
try {
@@ -201,7 +188,7 @@ public final class XSSFName implements Name {
* @return true if the name refers to a deleted cell, false otherwise
*/
public boolean isDeleted(){
- String ref = getReference();
+ String ref = getRefersToFormula();
return ref != null && ref.indexOf("#REF!") != -1;
}
@@ -278,7 +265,7 @@ public final class XSSFName implements Name {
int sheetId = (int)ctName.getLocalSheetId();
return workbook.getSheetName(sheetId);
} else {
- String ref = getReference();
+ String ref = getRefersToFormula();
AreaReference areaRef = new AreaReference(ref);
return areaRef.getFirstCell().getSheetName();
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
index 63f9152b8..0597f677b 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
@@ -617,7 +617,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable