Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403] [Versions 39 and 311]
1 <?php 2 3 namespace PhpOffice\PhpSpreadsheet\Writer\Ods; 4 5 use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; 6 use PhpOffice\PhpSpreadsheet\Spreadsheet; 7 8 class Meta extends WriterPart 9 { 10 /** 11 * Write meta.xml to XML format. 12 * 13 * @param Spreadsheet $spreadsheet 14 * 15 * @return string XML Output 16 */ 17 public function write(?Spreadsheet $spreadsheet = null) 18 { 19 if (!$spreadsheet) { 20 $spreadsheet = $this->getParentWriter()->getSpreadsheet(); 21 } 22 23 $objWriter = null; 24 if ($this->getParentWriter()->getUseDiskCaching()) { 25 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); 26 } else { 27 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY); 28 } 29 30 // XML header 31 $objWriter->startDocument('1.0', 'UTF-8'); 32 33 // Meta 34 $objWriter->startElement('office:document-meta'); 35 36 $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'); 37 $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); 38 $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); 39 $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0'); 40 $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office'); 41 $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#'); 42 $objWriter->writeAttribute('office:version', '1.2'); 43 44 $objWriter->startElement('office:meta'); 45 46 $objWriter->writeElement('meta:initial-creator', $spreadsheet->getProperties()->getCreator()); 47 $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator()); 48 $objWriter->writeElement('meta:creation-date', date(DATE_W3C, $spreadsheet->getProperties()->getCreated())); 49 $objWriter->writeElement('dc:date', date(DATE_W3C, $spreadsheet->getProperties()->getCreated())); 50 $objWriter->writeElement('dc:title', $spreadsheet->getProperties()->getTitle()); 51 $objWriter->writeElement('dc:description', $spreadsheet->getProperties()->getDescription()); 52 $objWriter->writeElement('dc:subject', $spreadsheet->getProperties()->getSubject()); 53 $keywords = explode(' ', $spreadsheet->getProperties()->getKeywords()); 54 foreach ($keywords as $keyword) { 55 $objWriter->writeElement('meta:keyword', $keyword); 56 } 57 58 //<meta:document-statistic meta:table-count="XXX" meta:cell-count="XXX" meta:object-count="XXX"/> 59 $objWriter->startElement('meta:user-defined'); 60 $objWriter->writeAttribute('meta:name', 'Company'); 61 $objWriter->writeRaw($spreadsheet->getProperties()->getCompany()); 62 $objWriter->endElement(); 63 64 $objWriter->startElement('meta:user-defined'); 65 $objWriter->writeAttribute('meta:name', 'category'); 66 $objWriter->writeRaw($spreadsheet->getProperties()->getCategory()); 67 $objWriter->endElement(); 68 69 $objWriter->endElement(); 70 71 $objWriter->endElement(); 72 73 return $objWriter->getData(); 74 } 75 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body