RelsRibbon.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. class PHPExcel_Writer_Excel2007_RelsRibbon extends PHPExcel_Writer_Excel2007_WriterPart
  8. {
  9. /**
  10. * Write relationships for additional objects of custom UI (ribbon)
  11. *
  12. * @param PHPExcel $pPHPExcel
  13. * @return string XML Output
  14. * @throws PHPExcel_Writer_Exception
  15. */
  16. public function writeRibbonRelationships(PHPExcel $pPHPExcel = null)
  17. {
  18. // Create XML writer
  19. $objWriter = null;
  20. if ($this->getParentWriter()->getUseDiskCaching()) {
  21. $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
  22. } else {
  23. $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
  24. }
  25. // XML header
  26. $objWriter->startDocument('1.0', 'UTF-8', 'yes');
  27. // Relationships
  28. $objWriter->startElement('Relationships');
  29. $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
  30. $localRels = $pPHPExcel->getRibbonBinObjects('names');
  31. if (is_array($localRels)) {
  32. foreach ($localRels as $aId => $aTarget) {
  33. $objWriter->startElement('Relationship');
  34. $objWriter->writeAttribute('Id', $aId);
  35. $objWriter->writeAttribute('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image');
  36. $objWriter->writeAttribute('Target', $aTarget);
  37. $objWriter->endElement();
  38. }
  39. }
  40. $objWriter->endElement();
  41. return $objWriter->getData();
  42. }
  43. }