PhpOffice\PhpPresentation\Writer\ODPresentation\Content::writeShapeTable PHP Method

writeShapeTable() public method

Write table Shape
public writeShapeTable ( PhpOffice\Common\XMLWriter $objWriter, Table $shape )
$objWriter PhpOffice\Common\XMLWriter
$shape PhpOffice\PhpPresentation\Shape\Table
    public function writeShapeTable(XMLWriter $objWriter, Table $shape)
    {
        // draw:frame
        $objWriter->startElement('draw:frame');
        $objWriter->writeAttribute('svg:x', Text::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getOffsetX()), 3) . 'cm');
        $objWriter->writeAttribute('svg:y', Text::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getOffsetY()), 3) . 'cm');
        $objWriter->writeAttribute('svg:height', Text::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getHeight()), 3) . 'cm');
        $objWriter->writeAttribute('svg:width', Text::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getWidth()), 3) . 'cm');
        // table:table
        $objWriter->startElement('table:table');
        foreach ($shape->getRows() as $keyRow => $shapeRow) {
            // table:table-row
            $objWriter->startElement('table:table-row');
            $objWriter->writeAttribute('table:style-name', 'gr' . $this->shapeId . 'r' . $keyRow);
            //@todo getFill
            $numColspan = 0;
            foreach ($shapeRow->getCells() as $keyCell => $shapeCell) {
                if ($numColspan == 0) {
                    // table:table-cell
                    $objWriter->startElement('table:table-cell');
                    $objWriter->writeAttribute('table:style-name', 'gr' . $this->shapeId . 'r' . $keyRow . 'c' . $keyCell);
                    if ($shapeCell->getColspan() > 1) {
                        $objWriter->writeAttribute('table:number-columns-spanned', $shapeCell->getColspan());
                        $numColspan = $shapeCell->getColspan() - 1;
                    }
                    // text:p
                    $objWriter->startElement('text:p');
                    // text:span
                    foreach ($shapeCell->getParagraphs() as $shapeParagraph) {
                        foreach ($shapeParagraph->getRichTextElements() as $shapeRichText) {
                            if ($shapeRichText instanceof TextElement || $shapeRichText instanceof Run) {
                                // text:span
                                $objWriter->startElement('text:span');
                                if ($shapeRichText instanceof Run) {
                                    $objWriter->writeAttribute('text:style-name', 'T_' . $shapeRichText->getHashCode());
                                }
                                if ($shapeRichText->hasHyperlink() === true && $shapeRichText->getHyperlink()->getUrl() != '') {
                                    // text:a
                                    $objWriter->startElement('text:a');
                                    $objWriter->writeAttribute('xlink:href', $shapeRichText->getHyperlink()->getUrl());
                                    $objWriter->text($shapeRichText->getText());
                                    $objWriter->endElement();
                                } else {
                                    $objWriter->text($shapeRichText->getText());
                                }
                                $objWriter->endElement();
                            } elseif ($shapeRichText instanceof BreakElement) {
                                // text:span
                                $objWriter->startElement('text:span');
                                // text:line-break
                                $objWriter->startElement('text:line-break');
                                $objWriter->endElement();
                                $objWriter->endElement();
                            }
                        }
                    }
                    // > text:p
                    $objWriter->endElement();
                    // > table:table-cell
                    $objWriter->endElement();
                } else {
                    // table:covered-table-cell
                    $objWriter->writeElement('table:covered-table-cell');
                    $numColspan--;
                }
            }
            // > table:table-row
            $objWriter->endElement();
        }
        // > table:table
        $objWriter->endElement();
        // > draw:frame
        $objWriter->endElement();
    }