/** * Opens up the Shared Strings Table, parses it, and * returns a handy object for working with * shared strings. */ public SharedStringsTable getSharedStringsTable() throws IOException, InvalidFormatException { ArrayList<PackagePart> parts = pkg.getPartsByContentType(XSSFRelation.SHARED_STRINGS.getContentType()); return parts.size() == 0 ? null : new SharedStringsTable(parts.get(0)); }
private void loadUrlsFromSheetRels(PackagePart sheetPart) { try { for (PackageRelationship rel : sheetPart.getRelationshipsByType(XSSFRelation.SHEET_HYPERLINKS.getRelation())) { relIdToHyperlink.put(rel.getId(), rel.getTargetURI().toString()); } } catch (InvalidFormatException e) { //swallow } }
/** * @since POI 3.14-Beta1 */ @Override protected POIXMLRelation getDescriptor(String relationshipType) { return XSSFRelation.getInstance(relationshipType); }
int tableNumber = getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType()).size() + 1; while(loop) { loop = false; for (PackagePart packagePart : getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType())) { String fileName = XSSFRelation.TABLE.getFileName(tableNumber); if(fileName.equals(packagePart.getPartName().getName())) {
/** * Create a new SpreadsheetML package and setup the default minimal content */ protected static OPCPackage newPackage() { try { OPCPackage pkg = OPCPackage.create(new ByteArrayOutputStream()); // Main part PackagePartName corePartName = PackagingURIHelper.createPartName(XSSFRelation.WORKBOOK.getDefaultFileName()); // Create main part relationship pkg.addRelationship(corePartName, TargetMode.INTERNAL, PackageRelationshipTypes.CORE_DOCUMENT); // Create main document part pkg.createPart(corePartName, XSSFRelation.WORKBOOK.getContentType()); pkg.getPackageProperties().setCreatorProperty(DOCUMENT_CREATOR); return pkg; } catch (Exception e){ throw new POIXMLException(e); } }
public void processSheets( ReportContext reportContext, List<String> savedParts, ZipContentTypeManager manager ) throws Exception { for(int i = 0; i < workBook.getNumberOfSheets(); i++){ XLSXSheet sheet = (XLSXSheet) nextSheet(reportContext, savedParts, i); CommentsTable comments = sheet.getCommentsTable(false); if(comments != null){ String entryName = ZipHelper.getZipItemNameFromOPCName(comments.getPackagePart().getPartName().getName()); savedParts.add(entryName); out.putNextEntry(new ZipEntry(entryName)); comments.writeTo(out); out.closeEntry(); } if (sheet.getPackagePart().hasRelationships()) { PackagePartName relationshipPartName = PackagingURIHelper .getRelationshipPartName(sheet.getPackagePart().getPartName()); ZipPartMarshaller.marshallRelationshipPart(sheet.getPackagePart().getRelationships(), relationshipPartName, out); savedParts.add(relationshipPartName.getName()); for (PackageRelationship next : sheet.getPackagePart().getRelationships()) { PackagePartName name = PackagingURIHelper.createPartName(next.getTargetURI()); XSSFRelation type = XSSFRelation.getInstance(next.getRelationshipType()); if (type != null) { manager.addContentType(name, type.getContentType()); } } } } }
/** * Returns an InputStream to read the contents of the * shared strings table. */ public InputStream getSharedStringsData() throws IOException, InvalidFormatException { return XSSFRelation.SHARED_STRINGS.getContents(workbookPart); }
/** * Create a new SpreadsheetML package and setup the default minimal content */ protected static OPCPackage newPackage(XSSFWorkbookType workbookType) { try { OPCPackage pkg = OPCPackage.create(new ByteArrayOutputStream()); // NOSONAR - we do not want to close this here // Main part PackagePartName corePartName = PackagingURIHelper.createPartName(XSSFRelation.WORKBOOK.getDefaultFileName()); // Create main part relationship pkg.addRelationship(corePartName, TargetMode.INTERNAL, PackageRelationshipTypes.CORE_DOCUMENT); // Create main document part pkg.createPart(corePartName, workbookType.getContentType()); pkg.getPackageProperties().setCreatorProperty(DOCUMENT_CREATOR); return pkg; } catch (Exception e){ throw new POIXMLException(e); } }
String sheetName = XSSFRelation.WORKSHEET.getFileName(sheetNumber); for(POIXMLDocumentPart relation : getRelations()) { if(relation.getPackagePart() != null &&
int tableNumber = getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType()).size() + 1; while(loop) { loop = false; for (PackagePart packagePart : getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType())) { String fileName = XSSFRelation.TABLE.getFileName(tableNumber); if(fileName.equals(packagePart.getPartName().getName())) {
/** * Returns an InputStream to read the contents of the * styles table. */ public InputStream getStylesData() throws IOException, InvalidFormatException { return XSSFRelation.STYLES.getContents(workbookPart); }
if(part.getSize() == 0 && part.getPartName().getName().equals(XSSFRelation.SHARED_STRINGS.getDefaultFileName())) { return true;
String sheetName = XSSFRelation.WORKSHEET.getFileName(sheetNumber); for(POIXMLDocumentPart relation : getRelations()) { if(relation.getPackagePart() != null &&
/** * Get the document's embedded files. */ @Override public List<PackagePart> getAllEmbeddedParts() throws OpenXML4JException { List<PackagePart> embedds = new LinkedList<>(); for(XSSFSheet sheet : sheets){ // Get the embeddings for the workbook for(PackageRelationship rel : sheet.getPackagePart().getRelationshipsByType(XSSFRelation.OLEEMBEDDINGS.getRelation())) { embedds.add( sheet.getPackagePart().getRelatedPart(rel) ); } for(PackageRelationship rel : sheet.getPackagePart().getRelationshipsByType(XSSFRelation.PACKEMBEDDINGS.getRelation())) { embedds.add( sheet.getPackagePart().getRelatedPart(rel) ); } } return embedds; }
/** * Are we a normal workbook (.xlsx), or a * macro enabled workbook (.xlsm)? */ public boolean isMacroEnabled() { return getPackagePart().getContentType().equals(XSSFRelation.MACROS_WORKBOOK.getContentType()); }
/** * Returns an InputStream to read the contents of the * themes table. */ public InputStream getThemesData() throws IOException, InvalidFormatException { return XSSFRelation.THEME.getContents(workbookPart); }
/** * @since 3.14-Beta1 */ private static void addRelation(RelationPart rp, POIXMLDocumentPart target) { PackageRelationship rel = rp.getRelationship(); if (rel.getTargetMode() == TargetMode.EXTERNAL) { target.getPackagePart().addRelationship( rel.getTargetURI(), rel.getTargetMode(), rel.getRelationshipType(), rel.getId()); } else { XSSFRelation xssfRel = XSSFRelation.getInstance(rel.getRelationshipType()); if (xssfRel == null) { // Don't copy all relations blindly, but only the ones we know about throw new POIXMLException("Can't clone sheet - unknown relation type found: "+rel.getRelationshipType()); } target.addRelation(rel.getId(), xssfRel, rp.getDocumentPart()); } }
ppName = PackagingURIHelper.createPartName(XSSFRelation.VBA_MACROS.getDefaultFileName()); } catch (InvalidFormatException e) { throw new POIXMLException(e);
/** * Generates the relation if required */ protected void generateRelationIfNeeded(PackagePart sheetPart) { if (_externalRel == null && needsRelationToo()) { // Generate the relation PackageRelationship rel = sheetPart.addExternalRelationship(_location, XSSFRelation.SHEET_HYPERLINKS.getRelation()); // Update the r:id _ctHyperlink.setId(rel.getId()); } }
protected void beforeDocumentRead() { // Ensure it isn't a XLSB file, which we don't support if (getCorePart().getContentType().equals(XSSFRelation.XLSB_BINARY_WORKBOOK.getContentType())) { throw new XLSBUnsupportedException(); } // Create arrays for parts attached to the workbook itself pivotTables = new ArrayList<>(); pivotCaches = new ArrayList<>(); }