You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/05/23 17:22:19 UTC

svn commit: r659572 - in /poi/trunk/src: documentation/content/xdocs/changes.xml documentation/content/xdocs/status.xml java/org/apache/poi/hssf/extractor/ExcelExtractor.java testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java

Author: nick
Date: Fri May 23 08:22:18 2008
New Revision: 659572

URL: http://svn.apache.org/viewvc?rev=659572&view=rev
Log:
Patch from Yury, plus tests, from bug #45043 - Support for getting excel cell comments when extracting text

Modified:
    poi/trunk/src/documentation/content/xdocs/changes.xml
    poi/trunk/src/documentation/content/xdocs/status.xml
    poi/trunk/src/java/org/apache/poi/hssf/extractor/ExcelExtractor.java
    poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java

Modified: poi/trunk/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/changes.xml?rev=659572&r1=659571&r2=659572&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/changes.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/changes.xml Fri May 23 08:22:18 2008
@@ -37,6 +37,7 @@
 
 		<!-- Don't forget to update status.xml too! -->
         <release version="3.1-final" date="2008-06-??">
+           <action dev="POI-DEVELOPERS" type="add">45043 - Support for getting excel cell comments when extracting text</action>
            <action dev="POI-DEVELOPERS" type="add">Extend the support for specifying a policy to HSSF on missing / blank cells when fetching, to be able to specify the policy at the HSSFWorkbook level</action>
            <action dev="POI-DEVELOPERS" type="fix">45025 - improved FormulaParser parse error messages</action>
            <action dev="POI-DEVELOPERS" type="fix">45046 - allowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable</action>

Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=659572&r1=659571&r2=659572&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Fri May 23 08:22:18 2008
@@ -34,6 +34,7 @@
 	<!-- Don't forget to update changes.xml too! -->
     <changes>
         <release version="3.1-final" date="2008-06-??">
+           <action dev="POI-DEVELOPERS" type="add">45043 - Support for getting excel cell comments when extracting text</action>
            <action dev="POI-DEVELOPERS" type="add">Extend the support for specifying a policy to HSSF on missing / blank cells when fetching, to be able to specify the policy at the HSSFWorkbook level</action>
            <action dev="POI-DEVELOPERS" type="fix">45025 - improved FormulaParser parse error messages</action>
            <action dev="POI-DEVELOPERS" type="fix">45046 - allowed EXTERNALBOOK(0x01AE) to be optional in the LinkTable</action>

Modified: poi/trunk/src/java/org/apache/poi/hssf/extractor/ExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/extractor/ExcelExtractor.java?rev=659572&r1=659571&r2=659572&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/extractor/ExcelExtractor.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/extractor/ExcelExtractor.java Fri May 23 08:22:18 2008
@@ -20,6 +20,7 @@
 
 import org.apache.poi.POIOLE2TextExtractor;
 import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFComment;
 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -39,6 +40,7 @@
 	private HSSFWorkbook wb;
 	private boolean includeSheetNames = true;
 	private boolean formulasNotResults = false;
+	private boolean includeCellComments = false;
 	
 	public ExcelExtractor(HSSFWorkbook wb) {
 		super(wb);
@@ -62,6 +64,12 @@
 	public void setFormulasNotResults(boolean formulasNotResults) {
 		this.formulasNotResults = formulasNotResults;
 	}
+	/**
+     * Should cell comments be included? Default is true
+     */
+    public void setIncludeCellComments(boolean includeCellComments) {
+        this.includeCellComments = includeCellComments;
+    }
 	
 	/**
 	 * Retreives the text contents of the file
@@ -128,6 +136,15 @@
 							break;
 					}
 					
+					// Output the comment, if requested and exists
+				    HSSFComment comment = cell.getCellComment();
+					if(includeCellComments && comment != null) {
+					    // Replace any newlines with spaces, otherwise it
+					    //  breaks the output
+					    String commentText = comment.getString().getString().replace('\n', ' ');
+					    text.append(" Comment by "+comment.getAuthor()+": "+commentText);
+					}
+					
 					// Output a tab if we're not on the last cell
 					if(outputContents && k < (lastCell-1)) {
 						text.append("\t");

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java?rev=659572&r1=659571&r2=659572&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java Fri May 23 08:22:18 2008
@@ -165,6 +165,28 @@
 		);
 	}
 	
+	public void testWithComments() throws Exception {
+		ExcelExtractor extractor = createExtractor("SimpleWithComments.xls");
+		extractor.setIncludeSheetNames(false);
+
+		// Check without comments
+		assertEquals(
+				"1.0\tone\n" +
+				"2.0\ttwo\n" + 
+				"3.0\tthree\n", 
+				extractor.getText()
+		);
+		
+		// Now with
+		extractor.setIncludeCellComments(true);
+		assertEquals(
+				"1.0\tone Comment by Yegor Kozlov: Yegor Kozlov: first cell\n" +
+				"2.0\ttwo Comment by Yegor Kozlov: Yegor Kozlov: second cell\n" + 
+				"3.0\tthree Comment by Yegor Kozlov: Yegor Kozlov: third cell\n", 
+				extractor.getText()
+		);
+	}
+	
 	
 	/**
 	 * Embded in a non-excel file



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org