Html Reader Tolerate Invalid Sheet Title

There are different rules for Title between Excel and Html, in particular maximum length and which characters are valid. Html Reader can throw an exception because of this difference. This PR allows it to tolerate an invalid title, retaining the default title if the Html suggests an invalid one.
This commit is contained in:
oleibman
2023-12-27 18:13:55 -08:00
parent a17a56b6e0
commit 68dec61e4a
3 changed files with 46 additions and 1 deletions
@@ -0,0 +1,38 @@
<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
class LongTitleTest extends AbstractFunctional
{
/**
* @dataProvider providerTitles
*/
public function testLongTitle(string $expected, string $title): void
{
$spreadsheet = new Spreadsheet();
$spreadsheet
->getProperties()
->setTitle('PhpSpreadsheet Table Test Document');
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 1);
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Html');
$spreadsheet->disconnectWorksheets();
self::assertSame('Worksheet', $reloadedSpreadsheet->getActiveSheet()->getTitle());
$reloadedSpreadsheet->disconnectWorksheets();
}
public static function providerTitles(): array
{
return [
['Worksheet', 'This title is just a bit too long'],
['Worksheet', 'Invalid * character'],
['Legitimate Title', 'Legitimate Title'],
];
}
}