diff --git a/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php b/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php index 7f484c2f..fa3e57e7 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php +++ b/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php @@ -18,23 +18,39 @@ class Namespaces const THEME = 'http://schemas.openxmlformats.org/package/2006/relationships/theme'; + const THEME2 = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'; + const COMPATIBILITY = 'http://schemas.openxmlformats.org/markup-compatibility/2006'; const MAIN = 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'; + const RELATIONSHIPS_DRAWING = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing'; + const DRAWINGML = 'http://schemas.openxmlformats.org/drawingml/2006/main'; const CHART = 'http://schemas.openxmlformats.org/drawingml/2006/chart'; + const CHART_ALTERNATE = 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart'; + + const RELATIONSHIPS_CHART = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'; + const SPREADSHEET_DRAWING = 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'; const SCHEMA_OFFICE_DOCUMENT = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'; const COMMENTS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments'; - //const CUSTOM_PROPERTIES = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties'; + const RELATIONSHIPS_CUSTOM_PROPERTIES = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties'; - //const EXTENDED_PROPERTIES = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties'; + const RELATIONSHIPS_EXTENDED_PROPERTIES = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties'; + + const RELATIONSHIPS_CTRLPROP = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp'; + + const CUSTOM_PROPERTIES = 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties'; + + const EXTENDED_PROPERTIES = 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties'; + + const PROPERTIES_VTYPES = 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'; const HYPERLINK = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'; @@ -58,13 +74,29 @@ class Namespaces const VBA = 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'; + const VBA_SIGNATURE = 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'; + const DATA_VALIDATIONS1 = 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main'; const DATA_VALIDATIONS2 = 'http://schemas.microsoft.com/office/excel/2006/main'; + const CONTENT_TYPES = 'http://schemas.openxmlformats.org/package/2006/content-types'; + + const RELATIONSHIPS_PRINTER_SETTINGS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'; + + const RELATIONSHIPS_TABLE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table'; + + const SPREADSHEETML_AC = 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'; + const DC_ELEMENTS = 'http://purl.org/dc/elements/1.1/'; - const DC_TERMS = 'http://purl.org/dc/terms'; + const DC_TERMS = 'http://purl.org/dc/terms/'; + + const DC_DCMITYPE = 'http://purl.org/dc/dcmitype/'; + + const SCHEMA_INSTANCE = 'http://www.w3.org/2001/XMLSchema-instance'; + + const URN_EXCEL = 'urn:schemas-microsoft-com:office:excel'; const URN_MSOFFICE = 'urn:schemas-microsoft-com:office:office'; diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Chart.php b/src/PhpSpreadsheet/Writer/Xlsx/Chart.php index 3b64bd8e..5bb12948 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Chart.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Chart.php @@ -12,6 +12,7 @@ use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; use PhpOffice\PhpSpreadsheet\Chart\TrendLine; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException; @@ -48,9 +49,9 @@ class Chart extends WriterPart // c:chartSpace $objWriter->startElement('c:chartSpace'); - $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); - $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns:c', Namespaces::CHART); + $objWriter->writeAttribute('xmlns:a', Namespaces::DRAWINGML); + $objWriter->writeAttribute('xmlns:r', Namespaces::SCHEMA_OFFICE_DOCUMENT); $objWriter->startElement('c:date1904'); $objWriter->writeAttribute('val', '0'); @@ -1553,11 +1554,11 @@ class Chart extends WriterPart private function writeAlternateContent(XMLWriter $objWriter): void { $objWriter->startElement('mc:AlternateContent'); - $objWriter->writeAttribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); + $objWriter->writeAttribute('xmlns:mc', Namespaces::COMPATIBILITY); $objWriter->startElement('mc:Choice'); $objWriter->writeAttribute('Requires', 'c14'); - $objWriter->writeAttribute('xmlns:c14', 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart'); + $objWriter->writeAttribute('xmlns:c14', Namespaces::CHART_ALTERNATE); $objWriter->startElement('c14:style'); $objWriter->writeAttribute('val', '102'); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Comments.php b/src/PhpSpreadsheet/Writer/Xlsx/Comments.php index 5045e8f3..91973884 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Comments.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Comments.php @@ -4,6 +4,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Comment; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; class Comments extends WriterPart @@ -40,7 +41,7 @@ class Comments extends WriterPart // comments $objWriter->startElement('comments'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('xmlns', Namespaces::MAIN); // Loop through authors $objWriter->startElement('authors'); @@ -107,9 +108,9 @@ class Comments extends WriterPart // xml $objWriter->startElement('xml'); - $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); - $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); - $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); + $objWriter->writeAttribute('xmlns:v', Namespaces::URN_VML); + $objWriter->writeAttribute('xmlns:o', Namespaces::URN_MSOFFICE); + $objWriter->writeAttribute('xmlns:x', Namespaces::URN_EXCEL); // o:shapelayout $objWriter->startElement('o:shapelayout'); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php b/src/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php index acb85b57..73657fc3 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\File; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -32,7 +33,7 @@ class ContentTypes extends WriterPart // Types $objWriter->startElement('Types'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types'); + $objWriter->writeAttribute('xmlns', Namespaces::CONTENT_TYPES); // Theme $this->writeOverrideContentType($objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml'); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/DefinedNames.php b/src/PhpSpreadsheet/Writer/Xlsx/DefinedNames.php index 0ca9f64f..24752c9e 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/DefinedNames.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/DefinedNames.php @@ -8,7 +8,7 @@ use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\DefinedName; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; -use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet as ActualWorksheet; class DefinedNames { @@ -98,7 +98,7 @@ class DefinedNames /** * Write Defined Name for autoFilter. */ - private function writeNamedRangeForAutofilter(Worksheet $worksheet, int $worksheetId = 0): void + private function writeNamedRangeForAutofilter(ActualWorksheet $worksheet, int $worksheetId = 0): void { // NamedRange for autoFilter $autoFilterRange = $worksheet->getAutoFilter()->getRange(); @@ -112,7 +112,7 @@ class DefinedNames $range = Coordinate::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref so we can make the cell ref absolute - [, $range[0]] = Worksheet::extractSheetTitle($range[0], true); + [, $range[0]] = ActualWorksheet::extractSheetTitle($range[0], true); $range[0] = Coordinate::absoluteCoordinate($range[0]); if (count($range) > 1) { @@ -129,7 +129,7 @@ class DefinedNames /** * Write Defined Name for PrintTitles. */ - private function writeNamedRangeForPrintTitles(Worksheet $worksheet, int $worksheetId = 0): void + private function writeNamedRangeForPrintTitles(ActualWorksheet $worksheet, int $worksheetId = 0): void { // NamedRange for PrintTitles if ($worksheet->getPageSetup()->isColumnsToRepeatAtLeftSet() || $worksheet->getPageSetup()->isRowsToRepeatAtTopSet()) { @@ -167,7 +167,7 @@ class DefinedNames /** * Write Defined Name for PrintTitles. */ - private function writeNamedRangeForPrintArea(Worksheet $worksheet, int $worksheetId = 0): void + private function writeNamedRangeForPrintArea(ActualWorksheet $worksheet, int $worksheetId = 0): void { // NamedRange for PrintArea if ($worksheet->getPageSetup()->isPrintAreaSet()) { diff --git a/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php b/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php index 02259c09..8902826a 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php @@ -3,6 +3,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Document\Properties; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -29,8 +30,8 @@ class DocProps extends WriterPart // Properties $objWriter->startElement('Properties'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties'); - $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); + $objWriter->writeAttribute('xmlns', Namespaces::EXTENDED_PROPERTIES); + $objWriter->writeAttribute('xmlns:vt', Namespaces::PROPERTIES_VTYPES); // Application $objWriter->writeElement('Application', 'Microsoft Excel'); @@ -124,11 +125,11 @@ class DocProps extends WriterPart // cp:coreProperties $objWriter->startElement('cp:coreProperties'); - $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties'); - $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); - $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/'); - $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/'); - $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); + $objWriter->writeAttribute('xmlns:cp', Namespaces::CORE_PROPERTIES2); + $objWriter->writeAttribute('xmlns:dc', Namespaces::DC_ELEMENTS); + $objWriter->writeAttribute('xmlns:dcterms', Namespaces::DC_TERMS); + $objWriter->writeAttribute('xmlns:dcmitype', Namespaces::DC_DCMITYPE); + $objWriter->writeAttribute('xmlns:xsi', Namespaces::SCHEMA_INSTANCE); // dc:creator $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator()); @@ -198,8 +199,8 @@ class DocProps extends WriterPart // cp:coreProperties $objWriter->startElement('Properties'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties'); - $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); + $objWriter->writeAttribute('xmlns', Namespaces::CUSTOM_PROPERTIES); + $objWriter->writeAttribute('xmlns:vt', Namespaces::PROPERTIES_VTYPES); foreach ($customPropertyList as $key => $customProperty) { $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Drawing.php b/src/PhpSpreadsheet/Writer/Xlsx/Drawing.php index 7693c72c..d4f7f11f 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Drawing.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Drawing.php @@ -3,6 +3,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\Drawing as SharedDrawing; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -34,8 +35,8 @@ class Drawing extends WriterPart // xdr:wsDr $objWriter->startElement('xdr:wsDr'); - $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'); - $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); + $objWriter->writeAttribute('xmlns:xdr', Namespaces::SPREADSHEET_DRAWING); + $objWriter->writeAttribute('xmlns:a', Namespaces::DRAWINGML); // Loop through images and write drawings $i = 1; @@ -159,10 +160,10 @@ class Drawing extends WriterPart $objWriter->startElement('a:graphic'); $objWriter->startElement('a:graphicData'); - $objWriter->writeAttribute('uri', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); + $objWriter->writeAttribute('uri', Namespaces::CHART); $objWriter->startElement('c:chart'); - $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns:c', Namespaces::CHART); + $objWriter->writeAttribute('xmlns:r', Namespaces::SCHEMA_OFFICE_DOCUMENT); $objWriter->writeAttribute('r:id', 'rId' . $relationId); $objWriter->endElement(); $objWriter->endElement(); @@ -265,7 +266,7 @@ class Drawing extends WriterPart // a:blip $objWriter->startElement('a:blip'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns:r', Namespaces::SCHEMA_OFFICE_DOCUMENT); $objWriter->writeAttribute('r:embed', 'rId' . $relationId); $objWriter->endElement(); @@ -362,9 +363,9 @@ class Drawing extends WriterPart // xml $objWriter->startElement('xml'); - $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml'); - $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office'); - $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel'); + $objWriter->writeAttribute('xmlns:v', Namespaces::URN_VML); + $objWriter->writeAttribute('xmlns:o', Namespaces::URN_MSOFFICE); + $objWriter->writeAttribute('xmlns:x', Namespaces::URN_EXCEL); // o:shapelayout $objWriter->startElement('o:shapelayout'); @@ -558,7 +559,7 @@ class Drawing extends WriterPart } $objWriter->startElement('a:hlinkClick'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns:r', Namespaces::SCHEMA_OFFICE_DOCUMENT); $objWriter->writeAttribute('r:id', 'rId' . $hlinkClickId); $objWriter->endElement(); } diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Rels.php b/src/PhpSpreadsheet/Writer/Xlsx/Rels.php index 99fa2d34..e621dc3e 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Rels.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Rels.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing; @@ -30,7 +31,7 @@ class Rels extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); $customPropertyList = $spreadsheet->getProperties()->getCustomProperties(); if (!empty($customPropertyList)) { @@ -38,7 +39,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, 4, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties', + Namespaces::RELATIONSHIPS_CUSTOM_PROPERTIES, 'docProps/custom.xml' ); } @@ -47,7 +48,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, 3, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', + Namespaces::RELATIONSHIPS_EXTENDED_PROPERTIES, 'docProps/app.xml' ); @@ -55,7 +56,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, 2, - 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + Namespaces::CORE_PROPERTIES, 'docProps/core.xml' ); @@ -63,7 +64,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, 1, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + Namespaces::OFFICE_DOCUMENT, 'xl/workbook.xml' ); // a custom UI in workbook ? @@ -72,7 +73,7 @@ class Rels extends WriterPart $this->writeRelationShip( $objWriter, 5, - 'http://schemas.microsoft.com/office/2006/relationships/ui/extensibility', + Namespaces::EXTENSIBILITY, is_string($target) ? $target : '' ); } @@ -102,13 +103,13 @@ class Rels extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); // Relationship styles.xml $this->writeRelationship( $objWriter, 1, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + Namespaces::STYLES, 'styles.xml' ); @@ -116,7 +117,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, 2, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + Namespaces::THEME2, 'theme/theme1.xml' ); @@ -124,7 +125,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, 3, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + Namespaces::SHARED_STRINGS, 'sharedStrings.xml' ); @@ -134,7 +135,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, ($i + 1 + 3), - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + Namespaces::WORKSHEET, 'worksheets/sheet' . ($i + 1) . '.xml' ); } @@ -144,7 +145,7 @@ class Rels extends WriterPart $this->writeRelationShip( $objWriter, ($i + 1 + 3), - 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', + Namespaces::VBA, 'vbaProject.bin' ); ++$i; //increment i if needed for an another relation @@ -183,7 +184,7 @@ class Rels extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); // Write drawing relationships? $drawingOriginalIds = []; @@ -215,7 +216,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, $rId, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', + Namespaces::RELATIONSHIPS_DRAWING, $relPath ); } @@ -227,7 +228,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, '_hyperlink_' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink', + Namespaces::HYPERLINK, $hyperlink->getUrl(), 'External' ); @@ -242,14 +243,14 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, '_comments_vml' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing', + Namespaces::VML, '../drawings/vmlDrawing' . $worksheetId . '.vml' ); $this->writeRelationship( $objWriter, '_comments' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments', + Namespaces::COMMENTS, '../comments' . $worksheetId . '.xml' ); } @@ -260,7 +261,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, '_table_' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table', + Namespaces::RELATIONSHIPS_TABLE, '../tables/table' . $tableRef++ . '.xml' ); } @@ -271,14 +272,14 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, '_headerfooter_vml' . $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing', + Namespaces::VML, '../drawings/vmlDrawingHF' . $worksheetId . '.vml' ); } - $this->writeUnparsedRelationship($worksheet, $objWriter, 'ctrlProps', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp'); - $this->writeUnparsedRelationship($worksheet, $objWriter, 'vmlDrawings', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'); - $this->writeUnparsedRelationship($worksheet, $objWriter, 'printerSettings', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'); + $this->writeUnparsedRelationship($worksheet, $objWriter, 'ctrlProps', Namespaces::RELATIONSHIPS_CTRLPROP); + $this->writeUnparsedRelationship($worksheet, $objWriter, 'vmlDrawings', Namespaces::VML); + $this->writeUnparsedRelationship($worksheet, $objWriter, 'printerSettings', Namespaces::RELATIONSHIPS_PRINTER_SETTINGS); $objWriter->endElement(); @@ -325,7 +326,7 @@ class Rels extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); // Loop through images and write relationships $i = 1; @@ -340,7 +341,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + Namespaces::IMAGE, '../media/' . $drawing->getIndexedFilename() ); @@ -359,7 +360,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, $i++, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', + Namespaces::RELATIONSHIPS_CHART, '../charts/chart' . ++$chartRef . '.xml' ); } @@ -391,7 +392,7 @@ class Rels extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); // Loop through images and write relationships foreach ($worksheet->getHeaderFooter()->getImages() as $key => $value) { @@ -399,7 +400,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, $key, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + Namespaces::IMAGE, '../media/' . $value->getIndexedFilename() ); } @@ -424,7 +425,7 @@ class Rels extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); // Loop through images and write relationships foreach ($worksheet->getComments() as $comment) { @@ -436,7 +437,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, $bgImage->getImageIndex(), - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + Namespaces::IMAGE, '../media/' . $bgImage->getMediaFilename() ); } @@ -483,7 +484,7 @@ class Rels extends WriterPart $this->writeRelationship( $objWriter, $i, - 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink', + Namespaces::HYPERLINK, $drawing->getHyperlink()->getUrl(), $drawing->getHyperlink()->getTypeHyperlink() ); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php b/src/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php index 8005207c..e231972c 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -27,13 +28,13 @@ class RelsRibbon extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); $localRels = $spreadsheet->getRibbonBinObjects('names'); if (is_array($localRels)) { foreach ($localRels as $aId => $aTarget) { $objWriter->startElement('Relationship'); $objWriter->writeAttribute('Id', $aId); - $objWriter->writeAttribute('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'); + $objWriter->writeAttribute('Type', Namespaces::IMAGE); $objWriter->writeAttribute('Target', $aTarget); $objWriter->endElement(); } diff --git a/src/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php b/src/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php index 55bcd360..30ed79a3 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -27,10 +28,10 @@ class RelsVBA extends WriterPart // Relationships $objWriter->startElement('Relationships'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::RELATIONSHIPS); $objWriter->startElement('Relationship'); $objWriter->writeAttribute('Id', 'rId1'); - $objWriter->writeAttribute('Type', 'http://schemas.microsoft.com/office/2006/relationships/vbaProjectSignature'); + $objWriter->writeAttribute('Type', Namespaces::VBA_SIGNATURE); $objWriter->writeAttribute('Target', 'vbaProjectSignature.bin'); $objWriter->endElement(); $objWriter->endElement(); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php b/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php index 078f940a..7f623933 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php @@ -5,28 +5,26 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Cell\Cell; use PhpOffice\PhpSpreadsheet\Cell\DataType; use PhpOffice\PhpSpreadsheet\Chart\ChartColor; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\RichText\Run; use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; -use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet as ActualWorksheet; class StringTable extends WriterPart { /** * Create worksheet stringtable. * - * @param Worksheet $worksheet Worksheet * @param string[] $existingTable Existing table to eventually merge with * * @return string[] String table for worksheet */ - public function createStringTable(Worksheet $worksheet, $existingTable = null) + public function createStringTable(ActualWorksheet $worksheet, $existingTable = null) { // Create string lookup table $aStringTable = []; - $cellCollection = null; - $aFlippedStringTable = null; // For faster lookup // Is an existing table given? if (($existingTable !== null) && is_array($existingTable)) { @@ -85,7 +83,7 @@ class StringTable extends WriterPart // String table $objWriter->startElement('sst'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('xmlns', Namespaces::MAIN); $objWriter->writeAttribute('uniqueCount', (string) count($stringTable)); // Loop through string table diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Style.php b/src/PhpSpreadsheet/Writer/Xlsx/Style.php index 0442c25d..d59b5b62 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Style.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Style.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -37,7 +38,7 @@ class Style extends WriterPart // styleSheet $objWriter->startElement('styleSheet'); $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('xmlns', Namespaces::MAIN); // numFmts $objWriter->startElement('numFmts'); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Table.php b/src/PhpSpreadsheet/Writer/Xlsx/Table.php index a974c6cb..cebdd0fd 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Table.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Table.php @@ -3,6 +3,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Worksheet\Table as WorksheetTable; @@ -34,7 +35,7 @@ class Table extends WriterPart $objWriter->startElement('table'); $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); + $objWriter->writeAttribute('xmlns', Namespaces::MAIN); $objWriter->writeAttribute('id', (string) $tableRef); $objWriter->writeAttribute('name', $name); $objWriter->writeAttribute('displayName', $table->getName() ?: $name); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Theme.php b/src/PhpSpreadsheet/Writer/Xlsx/Theme.php index 99177292..b6020c09 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Theme.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Theme.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -121,7 +122,7 @@ class Theme extends WriterPart // a:theme $objWriter->startElement('a:theme'); - $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); + $objWriter->writeAttribute('xmlns:a', Namespaces::DRAWINGML); $objWriter->writeAttribute('name', 'Office Theme'); // a:themeElements diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php b/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php index 7d08388d..f2a86782 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -32,8 +33,8 @@ class Workbook extends WriterPart // workbook $objWriter->startElement('workbook'); $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::MAIN); + $objWriter->writeAttribute('xmlns:r', Namespaces::SCHEMA_OFFICE_DOCUMENT); // fileVersion $this->writeFileVersion($objWriter); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php b/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php index 75b44706..58259a63 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php @@ -5,6 +5,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Calculation\Information\ErrorValue; use PhpOffice\PhpSpreadsheet\Cell\Cell; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\Settings; use PhpOffice\PhpSpreadsheet\Shared\StringHelper; @@ -41,15 +42,15 @@ class Worksheet extends WriterPart // Worksheet $objWriter->startElement('worksheet'); $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'); - $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); + $objWriter->writeAttribute('xmlns', Namespaces::MAIN); + $objWriter->writeAttribute('xmlns:r', Namespaces::SCHEMA_OFFICE_DOCUMENT); - $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'); - $objWriter->writeAttribute('xmlns:x14', 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main'); - $objWriter->writeAttribute('xmlns:xm', 'http://schemas.microsoft.com/office/excel/2006/main'); - $objWriter->writeAttribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006'); + $objWriter->writeAttribute('xmlns:xdr', Namespaces::SPREADSHEET_DRAWING); + $objWriter->writeAttribute('xmlns:x14', Namespaces::DATA_VALIDATIONS1); + $objWriter->writeAttribute('xmlns:xm', Namespaces::DATA_VALIDATIONS2); + $objWriter->writeAttribute('xmlns:mc', Namespaces::COMPATIBILITY); $objWriter->writeAttribute('mc:Ignorable', 'x14ac'); - $objWriter->writeAttribute('xmlns:x14ac', 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'); + $objWriter->writeAttribute('xmlns:x14ac', Namespaces::SPREADSHEETML_AC); // sheetPr $this->writeSheetPr($objWriter, $worksheet);