Meta.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. class PHPExcel_Writer_OpenDocument_Meta extends PHPExcel_Writer_OpenDocument_WriterPart
  8. {
  9. /**
  10. * Write meta.xml to XML format
  11. *
  12. * @param PHPExcel $pPHPExcel
  13. * @return string XML Output
  14. * @throws PHPExcel_Writer_Exception
  15. */
  16. public function write(PHPExcel $pPHPExcel = null)
  17. {
  18. if (!$pPHPExcel) {
  19. $pPHPExcel = $this->getParentWriter()->getPHPExcel();
  20. }
  21. $objWriter = null;
  22. if ($this->getParentWriter()->getUseDiskCaching()) {
  23. $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
  24. } else {
  25. $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
  26. }
  27. // XML header
  28. $objWriter->startDocument('1.0', 'UTF-8');
  29. // Meta
  30. $objWriter->startElement('office:document-meta');
  31. $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
  32. $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
  33. $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
  34. $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
  35. $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
  36. $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
  37. $objWriter->writeAttribute('office:version', '1.2');
  38. $objWriter->startElement('office:meta');
  39. $objWriter->writeElement('meta:initial-creator', $pPHPExcel->getProperties()->getCreator());
  40. $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator());
  41. $objWriter->writeElement('meta:creation-date', date(DATE_W3C, $pPHPExcel->getProperties()->getCreated()));
  42. $objWriter->writeElement('dc:date', date(DATE_W3C, $pPHPExcel->getProperties()->getCreated()));
  43. $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle());
  44. $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription());
  45. $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject());
  46. $keywords = explode(' ', $pPHPExcel->getProperties()->getKeywords());
  47. foreach ($keywords as $keyword) {
  48. $objWriter->writeElement('meta:keyword', $keyword);
  49. }
  50. //<meta:document-statistic meta:table-count="XXX" meta:cell-count="XXX" meta:object-count="XXX"/>
  51. $objWriter->startElement('meta:user-defined');
  52. $objWriter->writeAttribute('meta:name', 'Company');
  53. $objWriter->writeRaw($pPHPExcel->getProperties()->getCompany());
  54. $objWriter->endElement();
  55. $objWriter->startElement('meta:user-defined');
  56. $objWriter->writeAttribute('meta:name', 'category');
  57. $objWriter->writeRaw($pPHPExcel->getProperties()->getCategory());
  58. $objWriter->endElement();
  59. $objWriter->endElement();
  60. $objWriter->endElement();
  61. return $objWriter->getData();
  62. }
  63. }