diff options
Diffstat (limited to 'src/ooxml')
3 files changed, 27 insertions, 3 deletions
diff --git a/src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java b/src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java index 455b8ab1bb..320c6e143d 100644 --- a/src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java +++ b/src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java @@ -136,7 +136,7 @@ public class POIXMLPropertiesTextExtractor extends POIXMLTextExtractor { } } - public POITextExtractor getMetadataTextExtractor() { + public POIXMLPropertiesTextExtractor getMetadataTextExtractor() { throw new IllegalStateException("You already have the Metadata Text Extractor, not recursing!"); } } diff --git a/src/ooxml/java/org/apache/poi/POIXMLTextExtractor.java b/src/ooxml/java/org/apache/poi/POIXMLTextExtractor.java index 7c04aa079f..c6a99436b5 100644 --- a/src/ooxml/java/org/apache/poi/POIXMLTextExtractor.java +++ b/src/ooxml/java/org/apache/poi/POIXMLTextExtractor.java @@ -66,7 +66,7 @@ public abstract class POIXMLTextExtractor extends POITextExtractor { * Returns an OOXML properties text extractor for the * document properties metadata, such as title and author. */ - public POITextExtractor getMetadataTextExtractor() { - throw new RuntimeException("Not yet supported for OOXML!"); + public POIXMLPropertiesTextExtractor getMetadataTextExtractor() { + return new POIXMLPropertiesTextExtractor(document); } } diff --git a/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java b/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java index a8cf7ea992..8ff64a8504 100644 --- a/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java +++ b/src/ooxml/testcases/org/apache/poi/TestXMLPropertiesTextExtractor.java @@ -18,9 +18,12 @@ package org.apache.poi; import java.io.File; +import org.apache.poi.xssf.extractor.XSSFExcelExtractor; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openxml4j.opc.Package; +import sun.awt.X11.XModifierKeymap; + import junit.framework.TestCase; public class TestXMLPropertiesTextExtractor extends TestCase { @@ -30,6 +33,27 @@ public class TestXMLPropertiesTextExtractor extends TestCase { dirname = System.getProperty("OOXML.testdata.path"); assertTrue( (new File(dirname)).exists() ); } + + public void testGetFromMainExtractor() throws Exception { + org.openxml4j.opc.Package pkg = Package.open( + (new File(dirname, "ExcelWithAttachments.xlsx")).toString() + ); + XSSFWorkbook wb = new XSSFWorkbook(pkg); + + XSSFExcelExtractor ext = new XSSFExcelExtractor(wb); + POIXMLPropertiesTextExtractor textExt = ext.getMetadataTextExtractor(); + + // Check basics + assertNotNull(textExt); + assertTrue(textExt.getText().length() > 0); + + // Check some of the content + String text = textExt.getText(); + String cText = textExt.getCorePropertiesText(); + + assertTrue(text.contains("LastModifiedBy = Yury Batrakov")); + assertTrue(cText.contains("LastModifiedBy = Yury Batrakov")); + } public void testCore() throws Exception { org.openxml4j.opc.Package pkg = Package.open( |