PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.9.4
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.9.4
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
visualizer / vendor / phpoffice / phpspreadsheet / src / PhpSpreadsheet / Writer / Xlsx / DocProps.php

DocProps.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.9.4, at vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php

252 lines 8.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
4
5 use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
6 use PhpOffice\PhpSpreadsheet\Spreadsheet;
7
8 class DocProps extends WriterPart
9 {
10 /**
11 * Write docProps/app.xml to XML format.
12 *
13 * @param Spreadsheet $spreadsheet
14 *
15 * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
16 *
17 * @return string XML Output
18 */
19 public function writeDocPropsApp(Spreadsheet $spreadsheet)
20 {
21 // Create XML writer
22 $objWriter = null;
23 if ($this->getParentWriter()->getUseDiskCaching()) {
24 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
25 } else {
26 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
27 }
28
29 // XML header
30 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
31
32 // Properties
33 $objWriter->startElement('Properties');
34 $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
35 $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
36
37 // Application
38 $objWriter->writeElement('Application', 'Microsoft Excel');
39
40 // DocSecurity
41 $objWriter->writeElement('DocSecurity', '0');
42
43 // ScaleCrop
44 $objWriter->writeElement('ScaleCrop', 'false');
45
46 // HeadingPairs
47 $objWriter->startElement('HeadingPairs');
48
49 // Vector
50 $objWriter->startElement('vt:vector');
51 $objWriter->writeAttribute('size', '2');
52 $objWriter->writeAttribute('baseType', 'variant');
53
54 // Variant
55 $objWriter->startElement('vt:variant');
56 $objWriter->writeElement('vt:lpstr', 'Worksheets');
57 $objWriter->endElement();
58
59 // Variant
60 $objWriter->startElement('vt:variant');
61 $objWriter->writeElement('vt:i4', $spreadsheet->getSheetCount());
62 $objWriter->endElement();
63
64 $objWriter->endElement();
65
66 $objWriter->endElement();
67
68 // TitlesOfParts
69 $objWriter->startElement('TitlesOfParts');
70
71 // Vector
72 $objWriter->startElement('vt:vector');
73 $objWriter->writeAttribute('size', $spreadsheet->getSheetCount());
74 $objWriter->writeAttribute('baseType', 'lpstr');
75
76 $sheetCount = $spreadsheet->getSheetCount();
77 for ($i = 0; $i < $sheetCount; ++$i) {
78 $objWriter->writeElement('vt:lpstr', $spreadsheet->getSheet($i)->getTitle());
79 }
80
81 $objWriter->endElement();
82
83 $objWriter->endElement();
84
85 // Company
86 $objWriter->writeElement('Company', $spreadsheet->getProperties()->getCompany());
87
88 // Company
89 $objWriter->writeElement('Manager', $spreadsheet->getProperties()->getManager());
90
91 // LinksUpToDate
92 $objWriter->writeElement('LinksUpToDate', 'false');
93
94 // SharedDoc
95 $objWriter->writeElement('SharedDoc', 'false');
96
97 // HyperlinksChanged
98 $objWriter->writeElement('HyperlinksChanged', 'false');
99
100 // AppVersion
101 $objWriter->writeElement('AppVersion', '12.0000');
102
103 $objWriter->endElement();
104
105 // Return
106 return $objWriter->getData();
107 }
108
109 /**
110 * Write docProps/core.xml to XML format.
111 *
112 * @param Spreadsheet $spreadsheet
113 *
114 * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
115 *
116 * @return string XML Output
117 */
118 public function writeDocPropsCore(Spreadsheet $spreadsheet)
119 {
120 // Create XML writer
121 $objWriter = null;
122 if ($this->getParentWriter()->getUseDiskCaching()) {
123 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
124 } else {
125 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
126 }
127
128 // XML header
129 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
130
131 // cp:coreProperties
132 $objWriter->startElement('cp:coreProperties');
133 $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
134 $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
135 $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
136 $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
137 $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
138
139 // dc:creator
140 $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator());
141
142 // cp:lastModifiedBy
143 $objWriter->writeElement('cp:lastModifiedBy', $spreadsheet->getProperties()->getLastModifiedBy());
144
145 // dcterms:created
146 $objWriter->startElement('dcterms:created');
147 $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
148 $objWriter->writeRawData(date(DATE_W3C, $spreadsheet->getProperties()->getCreated()));
149 $objWriter->endElement();
150
151 // dcterms:modified
152 $objWriter->startElement('dcterms:modified');
153 $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
154 $objWriter->writeRawData(date(DATE_W3C, $spreadsheet->getProperties()->getModified()));
155 $objWriter->endElement();
156
157 // dc:title
158 $objWriter->writeElement('dc:title', $spreadsheet->getProperties()->getTitle());
159
160 // dc:description
161 $objWriter->writeElement('dc:description', $spreadsheet->getProperties()->getDescription());
162
163 // dc:subject
164 $objWriter->writeElement('dc:subject', $spreadsheet->getProperties()->getSubject());
165
166 // cp:keywords
167 $objWriter->writeElement('cp:keywords', $spreadsheet->getProperties()->getKeywords());
168
169 // cp:category
170 $objWriter->writeElement('cp:category', $spreadsheet->getProperties()->getCategory());
171
172 $objWriter->endElement();
173
174 // Return
175 return $objWriter->getData();
176 }
177
178 /**
179 * Write docProps/custom.xml to XML format.
180 *
181 * @param Spreadsheet $spreadsheet
182 *
183 * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
184 *
185 * @return string XML Output
186 */
187 public function writeDocPropsCustom(Spreadsheet $spreadsheet)
188 {
189 $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
190 if (empty($customPropertyList)) {
191 return;
192 }
193
194 // Create XML writer
195 $objWriter = null;
196 if ($this->getParentWriter()->getUseDiskCaching()) {
197 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
198 } else {
199 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
200 }
201
202 // XML header
203 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
204
205 // cp:coreProperties
206 $objWriter->startElement('Properties');
207 $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties');
208 $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
209
210 foreach ($customPropertyList as $key => $customProperty) {
211 $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty);
212 $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty);
213
214 $objWriter->startElement('property');
215 $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
216 $objWriter->writeAttribute('pid', $key + 2);
217 $objWriter->writeAttribute('name', $customProperty);
218
219 switch ($propertyType) {
220 case 'i':
221 $objWriter->writeElement('vt:i4', $propertyValue);
222
223 break;
224 case 'f':
225 $objWriter->writeElement('vt:r8', $propertyValue);
226
227 break;
228 case 'b':
229 $objWriter->writeElement('vt:bool', ($propertyValue) ? 'true' : 'false');
230
231 break;
232 case 'd':
233 $objWriter->startElement('vt:filetime');
234 $objWriter->writeRawData(date(DATE_W3C, $propertyValue));
235 $objWriter->endElement();
236
237 break;
238 default:
239 $objWriter->writeElement('vt:lpwstr', $propertyValue);
240
241 break;
242 }
243
244 $objWriter->endElement();
245 }
246
247 $objWriter->endElement();
248
249 return $objWriter->getData();
250 }
251 }
252