org.apache.poi
Class POIXMLDocument

java.lang.Object
  extended by org.apache.poi.POIXMLDocumentPart
      extended by org.apache.poi.POIXMLDocument
Direct Known Subclasses:
XSLFSlideShow, XSSFWorkbook, XWPFDocument

public abstract class POIXMLDocument
extends POIXMLDocumentPart


Field Summary
static java.lang.String CORE_PROPERTIES_REL_TYPE
           
static java.lang.String CUSTOM_PROPERTIES_REL_TYPE
           
static java.lang.String EXTENDED_PROPERTIES_REL_TYPE
           
static java.lang.String OLE_OBJECT_REL_TYPE
           
static java.lang.String PACK_OBJECT_REL_TYPE
           
 
Fields inherited from class org.apache.poi.POIXMLDocumentPart
DEFAULT_XML_OPTIONS
 
Constructor Summary
protected POIXMLDocument(Package pkg)
           
 
Method Summary
protected static Package ensureWriteAccess(Package pkg)
          YK: current implementation of OpenXML4J is funny.
abstract  java.util.List<PackagePart> getAllEmbedds()
          Get the document's embedded files.
protected  PackagePart getCorePart()
           
 Package getPackage()
           
 POIXMLProperties getProperties()
          Get the document properties.
protected  PackagePart[] getRelatedByType(java.lang.String contentType)
          Retrieves all the PackageParts which are defined as relationships of the base document with the specified content type.
protected static PackagePart getTargetPart(Package pkg, PackageRelationship rel)
          Get the PackagePart that is the target of a relationship.
protected  PackagePart getTargetPart(PackageRelationship rel)
          Get the PackagePart that is the target of a relationship.
static boolean hasOOXMLHeader(java.io.InputStream inp)
          Checks that the supplied InputStream (which MUST support mark and reset, or be a PushbackInputStream) has a OOXML (zip) header at the start of it.
static Package openPackage(java.lang.String path)
          Wrapper to open a package, returning an IOException in the event of a problem.
 void write(java.io.OutputStream stream)
          Write out this document to an Outputstream.
 
Methods inherited from class org.apache.poi.POIXMLDocumentPart
addRelation, commit, createRelationship, createRelationship, createRelationship, getPackagePart, getPackageRelationship, getParent, getRelations, onDocumentCreate, onDocumentRead, onSave, read, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CORE_PROPERTIES_REL_TYPE

public static final java.lang.String CORE_PROPERTIES_REL_TYPE
See Also:
Constant Field Values

EXTENDED_PROPERTIES_REL_TYPE

public static final java.lang.String EXTENDED_PROPERTIES_REL_TYPE
See Also:
Constant Field Values

CUSTOM_PROPERTIES_REL_TYPE

public static final java.lang.String CUSTOM_PROPERTIES_REL_TYPE
See Also:
Constant Field Values

OLE_OBJECT_REL_TYPE

public static final java.lang.String OLE_OBJECT_REL_TYPE
See Also:
Constant Field Values

PACK_OBJECT_REL_TYPE

public static final java.lang.String PACK_OBJECT_REL_TYPE
See Also:
Constant Field Values
Constructor Detail

POIXMLDocument

protected POIXMLDocument(Package pkg)
Method Detail

openPackage

public static Package openPackage(java.lang.String path)
                           throws java.io.IOException
Wrapper to open a package, returning an IOException in the event of a problem. Works around shortcomings in java's this() constructor calls

Throws:
java.io.IOException

getPackage

public Package getPackage()

getCorePart

protected PackagePart getCorePart()

getTargetPart

protected PackagePart getTargetPart(PackageRelationship rel)
                             throws InvalidFormatException
Get the PackagePart that is the target of a relationship.

Parameters:
rel - The relationship
Returns:
The target part
Throws:
InvalidFormatException

getTargetPart

protected static PackagePart getTargetPart(Package pkg,
                                           PackageRelationship rel)
                                    throws InvalidFormatException
Get the PackagePart that is the target of a relationship.

Parameters:
rel - The relationship
pkg - The package to fetch from
Returns:
The target part
Throws:
InvalidFormatException

getRelatedByType

protected PackagePart[] getRelatedByType(java.lang.String contentType)
                                  throws InvalidFormatException
Retrieves all the PackageParts which are defined as relationships of the base document with the specified content type.

Throws:
InvalidFormatException

hasOOXMLHeader

public static boolean hasOOXMLHeader(java.io.InputStream inp)
                              throws java.io.IOException
Checks that the supplied InputStream (which MUST support mark and reset, or be a PushbackInputStream) has a OOXML (zip) header at the start of it. If your InputStream does not support mark / reset, then wrap it in a PushBackInputStream, then be sure to always use that, and not the original!

Parameters:
inp - An InputStream which supports either mark/reset, or is a PushbackInputStream
Throws:
java.io.IOException

getProperties

public POIXMLProperties getProperties()
                               throws OpenXML4JException,
                                      java.io.IOException,
                                      org.apache.xmlbeans.XmlException
Get the document properties. This gives you access to the core ooxml properties, and the extended ooxml properties.

Throws:
OpenXML4JException
java.io.IOException
org.apache.xmlbeans.XmlException

getAllEmbedds

public abstract java.util.List<PackagePart> getAllEmbedds()
                                                   throws OpenXML4JException
Get the document's embedded files.

Throws:
OpenXML4JException

ensureWriteAccess

protected static Package ensureWriteAccess(Package pkg)
                                    throws java.io.IOException
YK: current implementation of OpenXML4J is funny. Packages opened by Package.open(InputStream is) are read-only, there is no way to change or even save such an instance in a OutputStream. The workaround is to create a copy via a temp file

Throws:
java.io.IOException

write

public final void write(java.io.OutputStream stream)
                 throws java.io.IOException
Write out this document to an Outputstream.

Parameters:
stream - - the java OutputStream you wish to write the XLS to
Throws:
java.io.IOException - if anything can't be written.


Copyright 2009 The Apache Software Foundation or its licensors, as applicable.