Files
oleibman 4a8f2a8f0c Witer/Html Option to Set Line Ending
It currently always uses PHP_EOL, which, of course, works, but you get slightly different results in Windows and Unix. User can now set line ending to `\n` or `\r\n` to ensure consistent results regardless of environment. Default remains PHP_EOL. We already do this for CSV.
2026-01-11 08:57:02 -08:00

46 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Writer\Tcpdf;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Pdf\Tcpdf;
use PHPUnit\Framework\TestCase;
class MergedCellTest extends TestCase
{
public static function testMergedCell(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$target = 'A1:A2';
$sheet->mergeCells($target);
$sheet->setCellValue('A1', 'Planning');
$sheet->setSelectedCells('D1');
$sheet->setCellValue('A4', 'Edge');
$sheet->setShowGridlines(false);
$writer = new Tcpdf($spreadsheet);
$writer->setLineEnding("\n");
$html = $writer->generateHtmlAll();
$html = (string) preg_replace('/^\s+/m', '', $html);
$expectedArray = [
'<tr>',
'<td rowspan="2" style="vertical-align:bottom; color:#000000; font-family:\'Calibri\'; font-size:11pt; text-align:left; width:42pt">Planning</td>', // row 1 has cell
'</tr>',
'<tr>',
'<td>&nbsp;</td>', // row 2 with only merged cell
'</tr>',
'<tr>',
'<td style="width:42pt">&nbsp;</td>', // row 3 no cell
'</tr>',
'<tr>',
'<td style="vertical-align:bottom; color:#000000; font-family:\'Calibri\'; font-size:11pt; text-align:left; width:42pt">Edge</td>', // row 4 has cell
'</tr>',
];
$expectedString = implode("\n", $expectedArray);
self::assertStringContainsString($expectedString, $html);
$spreadsheet->disconnectWorksheets();
}
}