Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Rels.php
public function writeWorksheetRelationships(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet, $pWorksheetId = 1, $includeCharts = false)
    {
        // Create XML writer
        $objWriter = null;
        if ($this->getParentWriter()->getUseDiskCaching()) {
            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
        } else {
            $objWriter = new XMLWriter(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');

        // Write drawing relationships?
        $d = 0;
        if ($includeCharts) {
            $charts = $pWorksheet->getChartCollection();
        } else {
            $charts = [];
        }
        if (($pWorksheet->getDrawingCollection()->count() > 0) ||
            (count($charts) > 0)) {
            $this->writeRelationship(
                $objWriter,
                ++$d,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
                '../drawings/drawing' . $pWorksheetId . '.xml'
            );
        }

        // Write hyperlink relationships?
        $i = 1;
        foreach ($pWorksheet->getHyperlinkCollection() as $hyperlink) {
            if (!$hyperlink->isInternal()) {
                $this->writeRelationship(
                    $objWriter,
                    '_hyperlink_' . $i,
                    'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
                    $hyperlink->getUrl(),
                    'External'
                );

                ++$i;
            }
        }

        // Write comments relationship?
        $i = 1;
        if (count($pWorksheet->getComments()) > 0) {
            $this->writeRelationship(
                $objWriter,
                '_comments_vml' . $i,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',
                '../drawings/vmlDrawing' . $pWorksheetId . '.vml'
            );

            $this->writeRelationship(
                $objWriter,
                '_comments' . $i,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments',
                '../comments' . $pWorksheetId . '.xml'
            );
        }

        // Write header/footer relationship?
        $i = 1;
        if (count($pWorksheet->getHeaderFooter()->getImages()) > 0) {
            $this->writeRelationship(
                $objWriter,
                '_headerfooter_vml' . $i,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',
                '../drawings/vmlDrawingHF' . $pWorksheetId . '.vml'
            );
        }

        $objWriter->endElement();

        return $objWriter->getData();
    }
public function writeWorksheetRelationships(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet, $pWorksheetId = 1, $includeCharts = false)
    {
        // Create XML writer
        $objWriter = null;
        if ($this->getParentWriter()->getUseDiskCaching()) {
            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
        } else {
            $objWriter = new XMLWriter(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');

        // Write drawing relationships?
        $d = 0;
        if ($includeCharts) {
            $charts = $pWorksheet->getChartCollection();
        } else {
            $charts = [];
        }
        if (($pWorksheet->getDrawingCollection()->count() > 0) ||
            (count($charts) > 0)) {
            $this->writeRelationship(
                $objWriter,
                ++$d,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
                '../drawings/drawing' . $pWorksheetId . '.xml'
            );
        }

        // Write hyperlink relationships?
        $i = 1;
        foreach ($pWorksheet->getHyperlinkCollection() as $hyperlink) {
            if (!$hyperlink->isInternal()) {
                $this->writeRelationship(
                    $objWriter,
                    '_hyperlink_' . $i,
                    'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
                    $hyperlink->getUrl(),
                    'External'
                );

                ++$i;
            }
        }

        // Write comments relationship?
        $i = 1;
        if (count($pWorksheet->getComments()) > 0) {
            $this->writeRelationship(
                $objWriter,
                '_comments_vml' . $i,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',
                '../drawings/vmlDrawing' . $pWorksheetId . '.vml'
            );

            $this->writeRelationship(
                $objWriter,
                '_comments' . $i,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments',
                '../comments' . $pWorksheetId . '.xml'
            );
        }

        // Write header/footer relationship?
        $i = 1;
        if (count($pWorksheet->getHeaderFooter()->getImages()) > 0) {
            $this->writeRelationship(
                $objWriter,
                '_headerfooter_vml' . $i,
                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',
                '../drawings/vmlDrawingHF' . $pWorksheetId . '.vml'
            );
        }

        $objWriter->endElement();

        return $objWriter->getData();
    }
public function writeWorksheetRelationships ( \ PhpOffice \ PhpSpreadsheet \ Worksheet \ Worksheet $ pWorksheet , $ pWorksheetId = 1 , $ includeCharts = false ) { // Create XML writer $ objWriter = null ; if ( $ this -> getParentWriter ( ) -> getUseDiskCaching ( ) ) { $ objWriter = new XMLWriter ( XMLWriter :: STORAGE_DISK , $ this -> getParentWriter ( ) -> getDiskCachingDirectory ( ) ) ; } else { $ objWriter = new XMLWriter ( 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' ) ; // Write drawing relationships? $ d = 0 ; if ( $ includeCharts ) { $ charts = $ pWorksheet -> getChartCollection ( ) ; } else { $ charts = [ ] ; } if ( ( $ pWorksheet -> getDrawingCollection ( ) -> count ( ) > 0 ) || ( count ( $ charts ) > 0 ) ) { $ this -> writeRelationship ( $ objWriter , ++ $ d , 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing' , '../drawings/drawing' . $ pWorksheetId . '.xml' ) ; } // Write hyperlink relationships? $ i = 1 ; foreach ( $ pWorksheet -> getHyperlinkCollection ( ) as $ hyperlink ) { if ( ! $ hyperlink -> isInternal ( ) ) { $ this -> writeRelationship ( $ objWriter , '_hyperlink_' . $ i , 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink' , $ hyperlink -> getUrl ( ) , 'External' ) ; ++ $ i ; } } // Write comments relationship? $ i = 1 ; if ( count ( $ pWorksheet -> getComments ( ) ) > 0 ) { $ this -> writeRelationship ( $ objWriter , '_comments_vml' . $ i , 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing' , '../drawings/vmlDrawing' . $ pWorksheetId . '.vml' ) ; $ this -> writeRelationship ( $ objWriter , '_comments' . $ i , 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments' , '../comments' . $ pWorksheetId . '.xml' ) ; } // Write header/footer relationship? $ i = 1 ; if ( count ( $ pWorksheet -> getHeaderFooter ( ) -> getImages ( ) ) > 0 ) { $ this -> writeRelationship ( $ objWriter , '_headerfooter_vml' . $ i , 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing' , '../drawings/vmlDrawingHF' . $ pWorksheetId . '.vml' ) ; } $ objWriter -> endElement ( ) ; return $ objWriter -> getData ( ) ; }
Write worksheet relationships to XML format.

Numbering is as follows:
rId1                 - Drawings
rId_hyperlink_x     - Hyperlinks

@param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
@param int $pWorksheetId
@param bool $includeCharts Flag indicating if we should write charts

@throws WriterException

@return string XML Output
Write worksheet relationships to XML format .