From 720b4a3aadf7f87f03662c04723b242454101ca7 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sun, 2 Feb 2014 16:23:26 +0000 Subject: [PATCH] Have the Excel text extractors all implement the same interface, as best as they can git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1563650 13f79535-47bb-0310-9956-ffa450edef68 --- .../extractor/EventBasedExcelExtractor.java | 16 +++++++--- .../XSSFEventBasedExcelExtractor.java | 30 ++++++++++++------- .../xssf/extractor/XSSFExcelExtractor.java | 3 +- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/src/java/org/apache/poi/hssf/extractor/EventBasedExcelExtractor.java b/src/java/org/apache/poi/hssf/extractor/EventBasedExcelExtractor.java index aef71dc548..541c048ae0 100644 --- a/src/java/org/apache/poi/hssf/extractor/EventBasedExcelExtractor.java +++ b/src/java/org/apache/poi/hssf/extractor/EventBasedExcelExtractor.java @@ -59,10 +59,10 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; * * http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/hssf/eventusermodel/examples/XLS2CSVmra.java */ -public class EventBasedExcelExtractor extends POIOLE2TextExtractor { - private DirectoryNode _dir; - boolean _includeSheetNames = true; - boolean _formulasNotResults = false; +public class EventBasedExcelExtractor extends POIOLE2TextExtractor implements org.apache.poi.ss.extractor.ExcelExtractor { + private DirectoryNode _dir; + boolean _includeSheetNames = true; + boolean _formulasNotResults = false; /** * @deprecated Use {@link #EventBasedExcelExtractor(DirectoryNode)} instead @@ -109,7 +109,15 @@ public class EventBasedExcelExtractor extends POIOLE2TextExtractor { throw new IllegalStateException("Metadata extraction not supported in streaming mode, please use ExcelExtractor"); } + /** + * Would control the inclusion of cell comments from the document, + * if we supported it + */ + public void setIncludeCellComments(boolean includeComments) { + throw new IllegalStateException("Comment extraction not supported in streaming mode, please use ExcelExtractor"); + } + /** * Should sheet names be included? Default is true */ diff --git a/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java b/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java index a313271e58..14bdd39aa5 100644 --- a/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java +++ b/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java @@ -26,10 +26,10 @@ import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.apache.poi.POIXMLProperties; -import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.POIXMLProperties.CoreProperties; import org.apache.poi.POIXMLProperties.CustomProperties; import org.apache.poi.POIXMLProperties.ExtendedProperties; +import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.ss.usermodel.DataFormatter; @@ -50,14 +50,15 @@ import org.xml.sax.XMLReader; * Implementation of a text extractor from OOXML Excel * files that uses SAX event based parsing. */ -public class XSSFEventBasedExcelExtractor extends POIXMLTextExtractor { - private OPCPackage container; - private POIXMLProperties properties; - - private Locale locale; - private boolean includeSheetNames = true; - private boolean formulasNotResults = false; - private boolean includeTextBoxes = true; +public class XSSFEventBasedExcelExtractor extends POIXMLTextExtractor + implements org.apache.poi.ss.extractor.ExcelExtractor { + private OPCPackage container; + private POIXMLProperties properties; + + private Locale locale; + private boolean includeSheetNames = true; + private boolean formulasNotResults = false; + private boolean includeTextBoxes = true; public XSSFEventBasedExcelExtractor(String path) throws XmlException, OpenXML4JException, IOException { this(OPCPackage.open(path)); @@ -97,12 +98,19 @@ public class XSSFEventBasedExcelExtractor extends POIXMLTextExtractor { /** * Should text from textboxes be included? Default is true */ - public void setIncludeTextBoxes(boolean includeTextBoxes) { this.includeTextBoxes = includeTextBoxes; } - public void setLocale(Locale locale) { + /** + * Would control the inclusion of cell comments from the document, + * if we supported it + */ + public void setIncludeCellComments(boolean includeCellComments) { + throw new IllegalStateException("Comment extraction not supported in streaming mode, please use XSSFExcelExtractor"); + } + + public void setLocale(Locale locale) { this.locale = locale; } 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 1d7c877151..ba3844ae0e 100644 --- a/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java +++ b/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java @@ -42,7 +42,8 @@ import org.apache.xmlbeans.XmlException; /** * Helper class to extract text from an OOXML Excel file */ -public class XSSFExcelExtractor extends POIXMLTextExtractor implements org.apache.poi.ss.extractor.ExcelExtractor { +public class XSSFExcelExtractor extends POIXMLTextExtractor + implements org.apache.poi.ss.extractor.ExcelExtractor { public static final XSSFRelation[] SUPPORTED_TYPES = new XSSFRelation[] { XSSFRelation.WORKBOOK, XSSFRelation.MACRO_TEMPLATE_WORKBOOK, XSSFRelation.MACRO_ADDIN_WORKBOOK, XSSFRelation.TEMPLATE_WORKBOOK, -- 2.39.5