diff options
author | Nick Burch <nick@apache.org> | 2008-05-27 12:36:00 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2008-05-27 12:36:00 +0000 |
commit | 21dc97110af112fb338c1b05283a67be70939286 (patch) | |
tree | 5d42b73e062260b3898262ae7904236493a84d41 /src/ooxml/java | |
parent | 429aba5ca8be4f2addbc841a0ec8bc95e532ea64 (diff) | |
download | poi-21dc97110af112fb338c1b05283a67be70939286.tar.gz poi-21dc97110af112fb338c1b05283a67be70939286.zip |
More merging, plus tests for embeded ooxml files
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@660488 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/java')
-rw-r--r-- | src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java b/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java index 9ebb3f053b..2d27f5d33d 100644 --- a/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java +++ b/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java @@ -16,25 +16,20 @@ ==================================================================== */ package org.apache.poi.xssf.extractor; -import java.io.File; import java.io.IOException; import java.util.Iterator; import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Comment; 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.xssf.usermodel.XSSFCell; -import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.xmlbeans.XmlException; import org.openxml4j.exceptions.OpenXML4JException; import org.openxml4j.opc.Package; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet; /** * Helper class to extract text from an OOXML Excel file @@ -43,6 +38,7 @@ public class XSSFExcelExtractor extends POIXMLTextExtractor { private Workbook workbook; private boolean includeSheetNames = true; private boolean formulasNotResults = false; + private boolean includeCellComments = false; public XSSFExcelExtractor(String path) throws XmlException, OpenXML4JException, IOException { this(new XSSFWorkbook(path)); @@ -79,6 +75,12 @@ public class XSSFExcelExtractor extends POIXMLTextExtractor { 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 @@ -94,8 +96,8 @@ public class XSSFExcelExtractor extends POIXMLTextExtractor { for (Object rawR : sheet) { Row row = (Row)rawR; - for(Iterator ri = row.cellIterator(); ri.hasNext();) { - Cell cell = (Cell)ri.next(); + for(Iterator<Cell> ri = row.cellIterator(); ri.hasNext();) { + Cell cell = ri.next(); // Is it a formula one? if(cell.getCellType() == Cell.CELL_TYPE_FORMULA && formulasNotResults) { @@ -107,6 +109,15 @@ public class XSSFExcelExtractor extends POIXMLTextExtractor { text.append(xc.getRawValue()); } + // Output the comment, if requested and exists + Comment 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); + } + if(ri.hasNext()) text.append("\t"); } |