123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 |
- /* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ==================================================================== */
- package org.apache.poi.xssf.usermodel;
-
- import java.util.HashMap;
- import java.util.Map;
-
- import org.apache.poi.ooxml.POIXMLDocument;
- import org.apache.poi.ooxml.POIXMLRelation;
- import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
- import org.apache.poi.sl.usermodel.PictureData;
- import org.apache.poi.xssf.model.CalculationChain;
- import org.apache.poi.xssf.model.CommentsTable;
- import org.apache.poi.xssf.model.ExternalLinksTable;
- import org.apache.poi.xssf.model.MapInfo;
- import org.apache.poi.xssf.model.SharedStringsTable;
- import org.apache.poi.xssf.model.SingleXmlCells;
- import org.apache.poi.xssf.model.StylesTable;
- import org.apache.poi.xssf.model.ThemesTable;
-
- /**
- * Defines namespaces, content types and normal file names / naming
- * patterns, for the well-known XSSF format parts.
- */
- public final class XSSFRelation extends POIXMLRelation {
-
- /**
- * A map to lookup POIXMLRelation by its relation type
- */
- private static final Map<String, XSSFRelation> _table = new HashMap<>();
-
-
- public static final XSSFRelation WORKBOOK = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/workbook",
- "/xl/workbook.xml"
- );
-
- public static final XSSFRelation MACROS_WORKBOOK = new XSSFRelation(
- "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
- PackageRelationshipTypes.CORE_DOCUMENT,
- "/xl/workbook.xml"
- );
-
- public static final XSSFRelation TEMPLATE_WORKBOOK = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml",
- PackageRelationshipTypes.CORE_DOCUMENT,
- "/xl/workbook.xml"
- );
-
- public static final XSSFRelation MACRO_TEMPLATE_WORKBOOK = new XSSFRelation(
- "application/vnd.ms-excel.template.macroEnabled.main+xml",
- PackageRelationshipTypes.CORE_DOCUMENT,
- "/xl/workbook.xml"
- );
-
- public static final XSSFRelation MACRO_ADDIN_WORKBOOK = new XSSFRelation(
- "application/vnd.ms-excel.addin.macroEnabled.main+xml",
- PackageRelationshipTypes.CORE_DOCUMENT,
- "/xl/workbook.xml"
- );
-
- public static final XSSFRelation XLSB_BINARY_WORKBOOK = new XSSFRelation(
- "application/vnd.ms-excel.sheet.binary.macroEnabled.main",
- PackageRelationshipTypes.CORE_DOCUMENT,
- "/xl/workbook.bin"
- );
-
- public static final XSSFRelation WORKSHEET = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",
- "/xl/worksheets/sheet#.xml",
- XSSFSheet::new, XSSFSheet::new
- );
-
- public static final XSSFRelation CHARTSHEET = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",
- "/xl/chartsheets/sheet#.xml",
- null, XSSFChartSheet::new
- );
-
- public static final XSSFRelation SHARED_STRINGS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
- "/xl/sharedStrings.xml",
- SharedStringsTable::new, SharedStringsTable::new
- );
-
- public static final XSSFRelation STYLES = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
- PackageRelationshipTypes.STYLE_PART,
- "/xl/styles.xml",
- StylesTable::new, StylesTable::new
- );
-
- public static final XSSFRelation DRAWINGS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.drawing+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
- "/xl/drawings/drawing#.xml",
- XSSFDrawing::new, XSSFDrawing::new
- );
-
- public static final XSSFRelation VML_DRAWINGS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.vmlDrawing",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",
- "/xl/drawings/vmlDrawing#.vml",
- XSSFVMLDrawing::new, XSSFVMLDrawing::new
- );
-
- public static final XSSFRelation CHART = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.drawingml.chart+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
- "/xl/charts/chart#.xml",
- XSSFChart::new, XSSFChart::new
- );
-
- public static final XSSFRelation CUSTOM_XML_MAPPINGS = new XSSFRelation(
- "application/xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/xmlMaps",
- "/xl/xmlMaps.xml",
- MapInfo::new, MapInfo::new
- );
-
- public static final XSSFRelation SINGLE_XML_CELLS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableSingleCells",
- "/xl/tables/tableSingleCells#.xml",
- SingleXmlCells::new, SingleXmlCells::new
- );
-
- public static final XSSFRelation TABLE = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",
- "/xl/tables/table#.xml",
- XSSFTable::new, XSSFTable::new
- );
-
- public static final XSSFRelation IMAGES = new XSSFRelation(
- null,
- PackageRelationshipTypes.IMAGE_PART,
- null,
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_EMF = new XSSFRelation(
- PictureData.PictureType.EMF.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.emf",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_WMF = new XSSFRelation(
- PictureData.PictureType.WMF.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.wmf",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_PICT = new XSSFRelation(
- PictureData.PictureType.PICT.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.pict",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_JPEG = new XSSFRelation(
- PictureData.PictureType.JPEG.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.jpeg",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_PNG = new XSSFRelation(
- PictureData.PictureType.PNG.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.png",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_DIB = new XSSFRelation(
- PictureData.PictureType.DIB.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.dib",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_GIF = new XSSFRelation(
- PictureData.PictureType.GIF.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.gif",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_TIFF = new XSSFRelation(
- PictureData.PictureType.TIFF.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.tiff",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_EPS = new XSSFRelation(
- PictureData.PictureType.EPS.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.eps",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_BMP = new XSSFRelation(
- PictureData.PictureType.BMP.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.bmp",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation IMAGE_WPG = new XSSFRelation(
- PictureData.PictureType.WPG.contentType,
- PackageRelationshipTypes.IMAGE_PART,
- "/xl/media/image#.wpg",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation HDPHOTO_WDP = new XSSFRelation(
- PictureData.PictureType.WDP.contentType,
- PackageRelationshipTypes.HDPHOTO_PART,
- "/xl/media/hdphoto#.wdp",
- XSSFPictureData::new, XSSFPictureData::new
- );
-
- public static final XSSFRelation SHEET_COMMENTS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
- "/xl/comments#.xml",
- CommentsTable::new, CommentsTable::new
- );
-
- public static final XSSFRelation SHEET_HYPERLINKS = new XSSFRelation(
- null,
- PackageRelationshipTypes.HYPERLINK_PART,
- null
- );
-
- public static final XSSFRelation OLEEMBEDDINGS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.oleObject",
- POIXMLDocument.OLE_OBJECT_REL_TYPE,
- "/xl/embeddings/oleObject#.bin"
- );
-
- public static final XSSFRelation PACKEMBEDDINGS = new XSSFRelation(
- null,
- POIXMLDocument.PACK_OBJECT_REL_TYPE,
- null
- );
-
- public static final XSSFRelation VBA_MACROS = new XSSFRelation(
- "application/vnd.ms-office.vbaProject",
- "http://schemas.microsoft.com/office/2006/relationships/vbaProject",
- "/xl/vbaProject.bin",
- XSSFVBAPart::new, XSSFVBAPart::new
- );
-
- public static final XSSFRelation ACTIVEX_CONTROLS = new XSSFRelation(
- "application/vnd.ms-office.activeX+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/control",
- "/xl/activeX/activeX#.xml"
- );
-
- public static final XSSFRelation ACTIVEX_BINS = new XSSFRelation(
- "application/vnd.ms-office.activeX",
- "http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary",
- "/xl/activeX/activeX#.bin"
- );
-
- public static final XSSFRelation MACRO_SHEET_BIN = new XSSFRelation(
- "application/vnd.ms-excel.macrosheet",
- "http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",
- "/xl/macroSheets/sheet#.bin"
- );
-
- public static final XSSFRelation MACRO_SHEET_XML = new XSSFRelation(
- "application/vnd.ms-excel.macrosheet+xml",
- "http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",
- "/xl/macroSheets/sheet#.xml"
- );
-
- public static final XSSFRelation INTL_MACRO_SHEET_BIN = new XSSFRelation(
- "application/vnd.ms-excel.intlmacrosheet",
- "http://schemas.microsoft.com/office/2006/relationships/xlIntlMacrosheet",
- "/xl/macroSheets/sheet#.bin"
- );
-
- public static final XSSFRelation INTL_MACRO_SHEET_XML = new XSSFRelation(
- "application/vnd.ms-excel.intlmacrosheet+xml",
- "http://schemas.microsoft.com/office/2006/relationships/xlIntlMacrosheet",
- "/xl/macroSheets/sheet#.xml"
- );
-
- public static final XSSFRelation DIALOG_SHEET_BIN = new XSSFRelation(
- null,//TODO: figure out what this should be?
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",
- "/xl/dialogSheets/sheet#.bin"
- );
-
- public static final XSSFRelation THEME = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.theme+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
- "/xl/theme/theme#.xml",
- ThemesTable::new, ThemesTable::new
- );
-
- public static final XSSFRelation CALC_CHAIN = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain",
- "/xl/calcChain.xml",
- CalculationChain::new, CalculationChain::new
- );
-
- public static final XSSFRelation EXTERNAL_LINKS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",
- "/xl/externalLinks/externalLink#.xml",
- ExternalLinksTable::new, ExternalLinksTable::new
- );
-
- public static final XSSFRelation PRINTER_SETTINGS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings",
- "/xl/printerSettings/printerSettings#.bin"
- );
- public static final XSSFRelation PIVOT_TABLE = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable",
- "/xl/pivotTables/pivotTable#.xml",
- XSSFPivotTable::new, XSSFPivotTable::new
- );
- public static final XSSFRelation PIVOT_CACHE_DEFINITION = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition",
- "/xl/pivotCache/pivotCacheDefinition#.xml",
- XSSFPivotCacheDefinition::new, XSSFPivotCacheDefinition::new
- );
- public static final XSSFRelation PIVOT_CACHE_RECORDS = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords",
- "/xl/pivotCache/pivotCacheRecords#.xml",
- XSSFPivotCacheRecords::new, XSSFPivotCacheRecords::new
- );
-
- public static final XSSFRelation CTRL_PROP_RECORDS = new XSSFRelation(
- null,
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp",
- "/xl/ctrlProps/ctrlProp#.xml"
- );
-
- public static final XSSFRelation CUSTOM_PROPERTIES = new XSSFRelation(
- "application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty",
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customProperty",
- "/xl/customProperty#.bin"
- );
-
- public static final String NS_PRESENTATIONML = "http://schemas.openxmlformats.org/presentationml/2006/main";
- public static final String NS_WORDPROCESSINGML = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
- public static final String NS_SPREADSHEETML = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
- public static final String NS_DRAWINGML = "http://schemas.openxmlformats.org/drawingml/2006/main";
- public static final String NS_CHART = "http://schemas.openxmlformats.org/drawingml/2006/chart";
-
-
- private XSSFRelation(String type, String rel, String defaultName) {
- this(type,rel, defaultName, null, null);
- }
-
- private XSSFRelation(String type, String rel, String defaultName,
- NoArgConstructor noArgConstructor,
- PackagePartConstructor packagePartConstructor) {
- super(type, rel, defaultName, noArgConstructor, packagePartConstructor, null);
- _table.put(rel, this);
- }
-
- /**
- * Get POIXMLRelation by relation type
- *
- * @param rel relation type, for example,
- * <code>http://schemas.openxmlformats.org/officeDocument/2006/relationships/image</code>
- * @return registered POIXMLRelation or null if not found
- */
- public static XSSFRelation getInstance(String rel) {
- return _table.get(rel);
- }
- }
|