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