$table->addRow($row); // Merge 4 vertical cell $row = new odsTableRow(); $cell = new odsTableCellString('Merge 4 cells'); $cell->setNumberRowsSpanned(4); $row->addCell($cell); $table->addRow($row); for ($i = 0; $i < 3; $i++) { // You need add cell odsCoveredTableCell, in covered cell except the first row (implicit) $row = new odsTableRow(); $row->addCell(new odsCoveredTableCell()); $table->addRow($row); } // Merge 4*7 cell $row = new odsTableRow(); $cell = new odsTableCellString('Merge 4*4 cells'); $cell->setNumberColumnsSpanned(4); $cell->setNumberRowsSpanned(4); $row->addCell($cell); $table->addRow($row); for ($i = 0; $i < 3; $i++) { // You need add cell odsCoveredTableCell, in covered cell except the first row (implicit) $row = new odsTableRow(); $row->addCell(new odsCoveredTableCell()); $row->addCell(new odsCoveredTableCell()); $row->addCell(new odsCoveredTableCell()); $row->addCell(new odsCoveredTableCell()); $table->addRow($row); } // Download the file $ods->downloadOdsFile("MergeCell.ods");
public function ods($start, $end) { $data = $this->gendate($start, $end); $ods = new ods(); $table = new odsTable('table 1'); $table->setHorizontalSplit(1); $table->setVerticalSplit(3); // Set coluomn width $styleColumn = new odsStyleTableColumn(); $styleColumn->setColumnWidth("4cm"); $table->addTableColumn(new odsTableColumn($styleColumn)); $table->addTableColumn($column = new odsTableColumn($styleColumn = new odsStyleTableColumn())); $styleColumn->setColumnWidth("1.5cm"); $column->setRepeated($data['total_days']); // Set Title Style $styleTitle1 = new odsStyleTableCell(); $styleTitle1->setBorder("0.01cm solid #000000"); $styleTitle1->setFontWeight('bold'); $styleTitle2 = clone $styleTitle1; $styleTitle2->setTextAlign("center"); // Months style $row = new odsTableRow(); $row->addCell(new odsTableCellString("Months:", $styleTitle1)); foreach ($data['months'] as $moi) { $cell = new odsTableCellString($moi['title'], $styleTitle2); $cell->setNumberColumnsSpanned($moi['day']); $row->addCell($cell); } $table->addRow($row); $row = new odsTableRow(); $row->addCell(new odsTableCellString("Weeks :", $styleTitle1)); foreach ($data['weeks'] as $week) { $cell = new odsTableCellString($week['title'], $styleTitle2); $cell->setNumberColumnsSpanned($week['day']); $row->addCell($cell); } $table->addRow($row); $row = new odsTableRow(); $row->addCell(new odsTableCellString("Days:", $styleTitle1)); foreach ($data['days'] as $day) { $cell = new odsTableCellString($day['title'], $styleTitle2); $cell->setNumberColumnsSpanned($day['day']); $row->addCell($cell); } $table->addRow($row); foreach ($data['projects'] as $projet) { $row = new odsTableRow(); $row->addCell(new odsTableCellString($projet['title'], $styleTitle1)); if ($projet["shift"]) { $cell = new odsTableCellEmpty(); $cell->setNumberColumnsRepeated($projet["shift"]); $row->addCell($cell); } $styleX = clone $styleTitle2; $styleX->setBackgroundColor($projet[color]); $cell = new odsTableCellString($projet['title'], $styleX); $cell->setNumberColumnsSpanned($projet['days']); $row->addCell($cell); $table->addRow($row); } $ods->addTable($table); $ods->downloadOdsFile("tab.ods"); exit; }