package org.docx4j.openpackaging.parts.SpreadsheetML; import javax.xml.bind.JAXBException; import org.docx4j.openpackaging.exceptions.InvalidFormatException; import org.docx4j.openpackaging.packages.SpreadsheetMLPackage; import org.docx4j.openpackaging.parts.PartName; import org.docx4j.openpackaging.parts.relationships.Namespaces; import org.xlsx4j.sml.Worksheet; public class WorksheetPart extends JaxbSmlPart<Worksheet> { public WorksheetPart(PartName partName) throws InvalidFormatException { super(partName); init(); } public WorksheetPart() throws InvalidFormatException { super(new PartName("/xl/worksheets/sheet1.xml")); init(); } public void init() { // Used if this Part is added to [Content_Types].xml setContentType(new org.docx4j.openpackaging.contenttype.ContentType( org.docx4j.openpackaging.contenttype.ContentTypes.SPREADSHEETML_WORKSHEET)); // Used when this Part is added to a rels setRelationshipType(Namespaces.SPREADSHEETML_WORKSHEET); } @Override public void setJaxbElement(Worksheet jaxbElement) { super.setJaxbElement(jaxbElement); jaxbElement.setParent(this); // if you create a new WorksheetPart } @Override public Worksheet unmarshal( java.io.InputStream is ) throws JAXBException { Worksheet w = super.unmarshal(is); w.setParent(this); // workaround for JAXB in Java 8 setting parent to JAXBElement! return w; } @Override public Worksheet unmarshal(org.w3c.dom.Element el) throws JAXBException { Worksheet w = super.unmarshal(el); w.setParent(this); // presume JAXB gets in wrong here too return w; } /** * Get the WorkbookPart. * * @return * @since 3.3.3 */ public WorkbookPart getWorkbookPart() { return ((SpreadsheetMLPackage)this.getPackage()).getWorkbookPart(); } }