getStyle(); if (!$style instanceof \PhpOffice\PhpWord\Style\Table) { return; } $xmlWriter = $this->getXmlWriter(); // w:tblPr $hasMargins = $style->hasMargins(); $hasBorders = $style->hasBorders(); $align = $style->getAlign(); $xmlWriter->startElement('w:tblPr'); $xmlWriter->startElement('w:tblW'); $xmlWriter->writeAttribute('w:w', $style->getWidth()); $xmlWriter->writeAttribute('w:type', $style->getUnit()); $xmlWriter->endElement(); // w:tblW // Alignment $styleWriter = new Alignment($xmlWriter, new AlignmentStyle(array('value' => $align))); $styleWriter->write(); // Margins if ($hasMargins) { $mbWriter = new MarginBorder($xmlWriter); $mbWriter->setSizes($style->getCellMargin()); $xmlWriter->startElement('w:tblCellMar'); $mbWriter->write(); $xmlWriter->endElement(); // w:tblCellMar } // Borders if ($hasBorders) { $mbWriter = new MarginBorder($xmlWriter); $mbWriter->setSizes($style->getBorderSize()); $mbWriter->setColors($style->getBorderColor()); $xmlWriter->startElement('w:tblBorders'); $mbWriter->write(); $xmlWriter->endElement(); // w:tblBorders } $xmlWriter->endElement(); // w:tblPr // Only write background color and first row for full style if ($this->isFullStyle) { // Background color if (!is_null($style->getShading())) { $xmlWriter->startElement('w:tcPr'); $styleWriter = new Shading($xmlWriter, $style->getShading()); $styleWriter->write(); $xmlWriter->endElement(); } // First Row $firstRow = $style->getFirstRow(); if ($firstRow instanceof \PhpOffice\PhpWord\Style\Table) { $this->writeFirstRow($firstRow); } } } /** * Set is full style * * @param bool $value */ public function setIsFullStyle($value) { $this->isFullStyle = $value; } /** * Write row style */ private function writeFirstRow(\PhpOffice\PhpWord\Style\Table $style) { $xmlWriter = $this->getXmlWriter(); $xmlWriter->startElement('w:tblStylePr'); $xmlWriter->writeAttribute('w:type', 'firstRow'); $xmlWriter->startElement('w:tcPr'); if (!is_null($style->getShading())) { $styleWriter = new Shading($xmlWriter, $style->getShading()); $styleWriter->write(); } // Borders if ($style->hasBorders()) { $mbWriter = new MarginBorder($xmlWriter); $mbWriter->setSizes($style->getBorderSize()); $mbWriter->setColors($style->getBorderColor()); $xmlWriter->startElement('w:tcBorders'); $mbWriter->write(); $xmlWriter->endElement(); // w:tcBorders } $xmlWriter->endElement(); // w:tcPr $xmlWriter->endElement(); // w:tblStylePr } }