More Coverage

This commit is contained in:
oleibman
2026-03-04 11:02:14 -08:00
parent 8fd5535fce
commit 3570cf16d1
2 changed files with 57 additions and 12 deletions
@@ -5,10 +5,12 @@ declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xls;
use PhpOffice\PhpSpreadsheet\Reader\Xls;
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use PHPUnit\Framework\TestCase;
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
class PageSetupTest extends TestCase
class PageSetupTest extends AbstractFunctional
{
private const MARGIN_PRECISION = 0.00000001;
@@ -152,17 +154,60 @@ class PageSetupTest extends TestCase
];
}
public function testRepeats(): void
public function testRepeats2(): void
{
$filename = 'tests/data/Reader/XLS/repeats.xls';
$reader = new Xls();
$spreadsheet = $reader->load($filename);
$sheet1 = $spreadsheet->getSheetByNameOrThrow('Sheet1');
$setup1 = $sheet1->getPageSetup();
self::assertSame([1, 1], $setup1->getRowsToRepeatAtTop());
$sheet2 = $spreadsheet->getSheetByNameOrThrow('Sheet2');
$setup2 = $sheet2->getPageSetup();
self::assertSame(['A', 'A'], $setup2->getColumnsToRepeatAtLeft());
$spreadsheet = new Spreadsheet();
$sheet1 = $spreadsheet->getActiveSheet();
$sheet1->setTitle('Sheet1');
$setup = $sheet1->getPageSetup();
$setup->setRowsToRepeatAtTop([1, 1]);
$data = 0;
for ($row = 2; $row < 100; ++$row) {
$colStr = 'A';
$sheet1->setCellValue("A$row", 'LEFT');
for ($col = 1; $col < 100; ++$col) {
StringHelper::stringIncrement($colStr);
if ($row === 2) {
$sheet1->setCellValue("{$colStr}1", 'TOP');
}
++$data;
$sheet1->setCellValue("$colStr$row", $data);
}
}
$cells = $sheet1->toArray();
$sheet2 = $spreadsheet->createSheet();
$sheet2->setTitle('Sheet2');
$setup = $sheet2->getPageSetup();
$setup->setColumnsToRepeatAtLeft(['A', 'A']);
$sheet2->fromArray($cells);
$sheet3 = $spreadsheet->createSheet();
$sheet3->setTitle('Sheet3');
$setup = $sheet3->getPageSetup();
$setup->setRowsToRepeatAtTop([1, 1]);
$setup->setColumnsToRepeatAtLeft(['A', 'A']);
$sheet3->fromArray($cells);
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xls');
$spreadsheet->disconnectWorksheets();
$rsheet1 = $reloadedSpreadsheet->getSheetByNameOrThrow('Sheet1');
$rsetup1 = $rsheet1->getPageSetup();
self::assertSame([1, 1], $rsetup1->getRowsToRepeatAtTop());
self::assertSame(['', ''], $rsetup1->getColumnsToRepeatAtLeft());
$rsheet2 = $reloadedSpreadsheet->getSheetByNameOrThrow('Sheet2');
$rsetup2 = $rsheet2->getPageSetup();
self::assertSame([0, 0], $rsetup2->getRowsToRepeatAtTop());
self::assertSame(['A', 'A'], $rsetup2->getColumnsToRepeatAtLeft());
$rsheet3 = $reloadedSpreadsheet->getSheetByNameOrThrow('Sheet3');
$rsetup3 = $rsheet3->getPageSetup();
self::assertSame([1, 1], $rsetup3->getRowsToRepeatAtTop());
self::assertSame(['A', 'A'], $rsetup3->getColumnsToRepeatAtLeft());
$reloadedSpreadsheet->disconnectWorksheets();
}
}
Binary file not shown.