aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/poi/hssf/usermodel/HSSFName.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/org/apache/poi/hssf/usermodel/HSSFName.java')
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFName.java39
1 files changed, 37 insertions, 2 deletions
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFName.java b/src/java/org/apache/poi/hssf/usermodel/HSSFName.java
index 579d3494e9..e88a672beb 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFName.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFName.java
@@ -19,6 +19,7 @@ package org.apache.poi.hssf.usermodel;
import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.model.InternalWorkbook;
+import org.apache.poi.hssf.record.NameCommentRecord;
import org.apache.poi.hssf.record.NameRecord;
import org.apache.poi.hssf.record.formula.Ptg;
import org.apache.poi.ss.formula.FormulaType;
@@ -33,8 +34,10 @@ import org.apache.poi.ss.usermodel.Name;
public final class HSSFName implements Name {
private HSSFWorkbook _book;
private NameRecord _definedNameRec;
+ private NameCommentRecord _commentRec;
- /** Creates new HSSFName - called by HSSFWorkbook to create a sheet from
+ /**
+ * Creates new HSSFName - called by HSSFWorkbook to create a name from
* scratch.
*
* @see org.apache.poi.hssf.usermodel.HSSFWorkbook#createName()
@@ -42,8 +45,21 @@ public final class HSSFName implements Name {
* @param book workbook object associated with the sheet.
*/
/* package */ HSSFName(HSSFWorkbook book, NameRecord name) {
+ this(book, name, null);
+ }
+ /**
+ * Creates new HSSFName - called by HSSFWorkbook to create a name from
+ * scratch.
+ *
+ * @see org.apache.poi.hssf.usermodel.HSSFWorkbook#createName()
+ * @param name the Name Record
+ * @param comment the Name Comment Record, optional.
+ * @param book workbook object associated with the sheet.
+ */
+ /* package */ HSSFName(final HSSFWorkbook book, final NameRecord name, final NameCommentRecord comment) {
_book = book;
_definedNameRec = name;
+ _commentRec = comment;
}
/** Get the sheets name which this named range is referenced to
@@ -131,6 +147,13 @@ public final class HSSFName implements Name {
}
}
}
+
+ // Update our comment, if there is one
+ if(_commentRec != null) {
+ String oldName = _commentRec.getNameText();
+ _commentRec.setNameText(nameName);
+ _book.getWorkbook().updateNameCommentRecordCache(_commentRec);
+ }
}
private static void validateName(String name){
@@ -230,7 +253,14 @@ public final class HSSFName implements Name {
*
* @return the user comment for this named range
*/
- public String getComment(){
+ public String getComment() {
+ if(_commentRec != null) {
+ // Prefer the comment record if it has text in it
+ if(_commentRec.getCommentText() != null &&
+ _commentRec.getCommentText().length() > 0) {
+ return _commentRec.getCommentText();
+ }
+ }
return _definedNameRec.getDescriptionText();
}
@@ -240,7 +270,12 @@ public final class HSSFName implements Name {
* @param comment the user comment for this named range
*/
public void setComment(String comment){
+ // Update the main record
_definedNameRec.setDescriptionText(comment);
+ // If we have a comment record too, update that as well
+ if(_commentRec != null) {
+ _commentRec.setCommentText(comment);
+ }
}
/**