You are here

public function PHPExcel_Writer_Excel2007_Rels::writeWorkbookRelationships in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php \PHPExcel_Writer_Excel2007_Rels::writeWorkbookRelationships()

* Write workbook relationships to XML format * *

Parameters

PHPExcel $pPHPExcel: * @return string XML Output * @throws PHPExcel_Writer_Exception

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Rels.php, line 120

Class

PHPExcel_Writer_Excel2007_Rels
PHPExcel_Writer_Excel2007_Rels

Code

public function writeWorkbookRelationships(PHPExcel $pPHPExcel = null) {

  // Create XML writer
  $objWriter = null;
  if ($this
    ->getParentWriter()
    ->getUseDiskCaching()) {
    $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this
      ->getParentWriter()
      ->getDiskCachingDirectory());
  }
  else {
    $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
  }

  // XML header
  $objWriter
    ->startDocument('1.0', 'UTF-8', 'yes');

  // Relationships
  $objWriter
    ->startElement('Relationships');
  $objWriter
    ->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');

  // Relationship styles.xml
  $this
    ->_writeRelationship($objWriter, 1, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', 'styles.xml');

  // Relationship theme/theme1.xml
  $this
    ->_writeRelationship($objWriter, 2, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', 'theme/theme1.xml');

  // Relationship sharedStrings.xml
  $this
    ->_writeRelationship($objWriter, 3, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', 'sharedStrings.xml');

  // Relationships with sheets
  $sheetCount = $pPHPExcel
    ->getSheetCount();
  for ($i = 0; $i < $sheetCount; ++$i) {
    $this
      ->_writeRelationship($objWriter, $i + 1 + 3, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', 'worksheets/sheet' . ($i + 1) . '.xml');
  }

  // Relationships for vbaProject if needed
  // id : just after the last sheet
  if ($pPHPExcel
    ->hasMacros()) {
    $this
      ->_writeRelationShip($objWriter, $i + 1 + 3, 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', 'vbaProject.bin');
    ++$i;

    //increment i if needed for an another relation
  }
  $objWriter
    ->endElement();

  // Return
  return $objWriter
    ->getData();
}