PluginProbe
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin / 6.5.1.7
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin v6.5.1.7
6.5.1.7 6.5.1.6 6.5.1.5 6.5.1.4 6.5.1.3 6.5.1.2 6.5.1.1 6.5.0.9 6.5.0.8 6.5.0.7 6.5.0.6 trunk 3.4.2.40 3.4.2.41 3.4.2.42 3.4.2.43 3.4.2.44 3.4.2.45 3.4.2.46 3.4.2.47 3.4.2.48 3.4.2.49 3.4.2.50 6.3.2 6.3.3.1 All 47 releases
wpdatatables / lib / phpoffice / phpspreadsheet / src / PhpSpreadsheet / Writer / Xlsx / Table.php

Table.php in wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin 6.5.1.7, at lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Table.php

116 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
4
5 use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
6 use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces;
7 use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
8 use PhpOffice\PhpSpreadsheet\Worksheet\Table as WorksheetTable;
9
10 class Table extends WriterPart
11 {
12 /**
13 * Write Table to XML format.
14 *
15 * @param int $tableRef Table ID
16 *
17 * @return string XML Output
18 */
19 public function writeTable(WorksheetTable $table, $tableRef): string
20 {
21 // Create XML writer
22 $objWriter = null;
23 if ($this->getParentWriter()->getUseDiskCaching()) {
24 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
25 } else {
26 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
27 }
28
29 // XML header
30 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
31
32 // Table
33 $name = 'Table' . $tableRef;
34 $range = $table->getRange();
35
36 $objWriter->startElement('table');
37 $objWriter->writeAttribute('xml:space', 'preserve');
38 $objWriter->writeAttribute('xmlns', Namespaces::MAIN);
39 $objWriter->writeAttribute('id', (string) $tableRef);
40 $objWriter->writeAttribute('name', $name);
41 $objWriter->writeAttribute('displayName', $table->getName() ?: $name);
42 $objWriter->writeAttribute('ref', $range);
43 $objWriter->writeAttribute('headerRowCount', $table->getShowHeaderRow() ? '1' : '0');
44 $objWriter->writeAttribute('totalsRowCount', $table->getShowTotalsRow() ? '1' : '0');
45
46 // Table Boundaries
47 [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($table->getRange());
48
49 // Table Auto Filter
50 if ($table->getShowHeaderRow() && $table->getAllowFilter() === true) {
51 $objWriter->startElement('autoFilter');
52 $objWriter->writeAttribute('ref', $range);
53 $objWriter->endElement();
54 foreach (range($rangeStart[0], $rangeEnd[0]) as $offset => $columnIndex) {
55 $column = $table->getColumnByOffset($offset);
56
57 if (!$column->getShowFilterButton()) {
58 $objWriter->startElement('filterColumn');
59 $objWriter->writeAttribute('colId', (string) $offset);
60 $objWriter->writeAttribute('hiddenButton', '1');
61 $objWriter->endElement();
62 } else {
63 $column = $table->getAutoFilter()->getColumnByOffset($offset);
64 AutoFilter::writeAutoFilterColumn($objWriter, $column, $offset);
65 }
66 }
67 }
68
69 // Table Columns
70 $objWriter->startElement('tableColumns');
71 $objWriter->writeAttribute('count', (string) ($rangeEnd[0] - $rangeStart[0] + 1));
72 foreach (range($rangeStart[0], $rangeEnd[0]) as $offset => $columnIndex) {
73 $worksheet = $table->getWorksheet();
74 if (!$worksheet) {
75 continue;
76 }
77
78 $column = $table->getColumnByOffset($offset);
79 $cell = $worksheet->getCell([$columnIndex, $rangeStart[1]]);
80
81 $objWriter->startElement('tableColumn');
82 $objWriter->writeAttribute('id', (string) ($offset + 1));
83 $objWriter->writeAttribute('name', $table->getShowHeaderRow() ? $cell->getValue() : 'Column' . ($offset + 1));
84
85 if ($table->getShowTotalsRow()) {
86 if ($column->getTotalsRowLabel()) {
87 $objWriter->writeAttribute('totalsRowLabel', $column->getTotalsRowLabel());
88 }
89 if ($column->getTotalsRowFunction()) {
90 $objWriter->writeAttribute('totalsRowFunction', $column->getTotalsRowFunction());
91 }
92 }
93 if ($column->getColumnFormula()) {
94 $objWriter->writeElement('calculatedColumnFormula', $column->getColumnFormula());
95 }
96
97 $objWriter->endElement();
98 }
99 $objWriter->endElement();
100
101 // Table Styles
102 $objWriter->startElement('tableStyleInfo');
103 $objWriter->writeAttribute('name', $table->getStyle()->getTheme());
104 $objWriter->writeAttribute('showFirstColumn', $table->getStyle()->getShowFirstColumn() ? '1' : '0');
105 $objWriter->writeAttribute('showLastColumn', $table->getStyle()->getShowLastColumn() ? '1' : '0');
106 $objWriter->writeAttribute('showRowStripes', $table->getStyle()->getShowRowStripes() ? '1' : '0');
107 $objWriter->writeAttribute('showColumnStripes', $table->getStyle()->getShowColumnStripes() ? '1' : '0');
108 $objWriter->endElement();
109
110 $objWriter->endElement();
111
112 // Return
113 return $objWriter->getData();
114 }
115 }
116