暂无描述

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * This file is part of PHPWord - A pure PHP library for reading and writing
  4. * word processing documents.
  5. *
  6. * PHPWord is free software distributed under the terms of the GNU Lesser
  7. * General Public License version 3 as published by the Free Software Foundation.
  8. *
  9. * For the full copyright and license information, please read the LICENSE
  10. * file that was distributed with this source code. For the full list of
  11. * contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
  12. *
  13. * @link https://github.com/PHPOffice/PHPWord
  14. * @copyright 2010-2014 PHPWord contributors
  15. * @license http://www.gnu.org/licenses/lgpl.txt LGPL version 3
  16. */
  17. namespace PhpOffice\PhpWord\Writer\ODText\Element;
  18. /**
  19. * Table element writer
  20. *
  21. * @since 0.10.0
  22. */
  23. class Table extends AbstractElement
  24. {
  25. /**
  26. * Write element
  27. */
  28. public function write()
  29. {
  30. $xmlWriter = $this->getXmlWriter();
  31. $element = $this->getElement();
  32. if (!$element instanceof \PhpOffice\PhpWord\Element\Table) {
  33. return;
  34. }
  35. $rows = $element->getRows();
  36. $rowCount = count($rows);
  37. $colCount = $element->countColumns();
  38. if ($rowCount > 0) {
  39. $xmlWriter->startElement('table:table');
  40. $xmlWriter->writeAttribute('table:name', $element->getElementId());
  41. $xmlWriter->writeAttribute('table:style', $element->getElementId());
  42. $xmlWriter->startElement('table:table-column');
  43. $xmlWriter->writeAttribute('table:number-columns-repeated', $colCount);
  44. $xmlWriter->endElement(); // table:table-column
  45. foreach ($rows as $row) {
  46. $xmlWriter->startElement('table:table-row');
  47. /** @var $row \PhpOffice\PhpWord\Element\Row Type hint */
  48. foreach ($row->getCells() as $cell) {
  49. $xmlWriter->startElement('table:table-cell');
  50. $xmlWriter->writeAttribute('office:value-type', 'string');
  51. $containerWriter = new Container($xmlWriter, $cell);
  52. $containerWriter->write();
  53. $xmlWriter->endElement(); // table:table-cell
  54. }
  55. $xmlWriter->endElement(); // table:table-row
  56. }
  57. $xmlWriter->endElement(); // table:table
  58. }
  59. }
  60. }