Table name is now case insensitive

Table name comparison changed to UTF-8 aware and case insensitive
This commit is contained in:
aswinkumar863 2022-04-23 18:42:11 +05:30
parent 1d99dc8d76
commit d414f139f1
No known key found for this signature in database
GPG Key ID: 8A69BFA6AEF8FA3E
4 changed files with 7 additions and 4 deletions

View File

@ -4,6 +4,7 @@ namespace PhpOffice\PhpSpreadsheet\Worksheet;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException; use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Worksheet\Table\TableStyle; use PhpOffice\PhpSpreadsheet\Worksheet\Table\TableStyle;
class Table class Table
@ -226,10 +227,11 @@ class Table
{ {
if ($this->name !== '' && $worksheet !== null) { if ($this->name !== '' && $worksheet !== null) {
$spreadsheet = $worksheet->getParent(); $spreadsheet = $worksheet->getParent();
$tableName = StringHelper::strToUpper($this->name);
foreach ($spreadsheet->getWorksheetIterator() as $sheet) { foreach ($spreadsheet->getWorksheetIterator() as $sheet) {
foreach ($sheet->getTableCollection() as $table) { foreach ($sheet->getTableCollection() as $table) {
if ($table->getName() === $this->name) { if (StringHelper::strToUpper($table->getName()) === $tableName) {
throw new PhpSpreadsheetException("Workbook already contains a table named '{$this->name}'"); throw new PhpSpreadsheetException("Workbook already contains a table named '{$this->name}'");
} }
} }

View File

@ -2158,8 +2158,9 @@ class Worksheet implements IComparable
*/ */
public function removeTableByName(string $name): self public function removeTableByName(string $name): self
{ {
$name = Shared\StringHelper::strToUpper($name);
foreach ($this->tableCollection as $key => $table) { foreach ($this->tableCollection as $key => $table) {
if ($table->getName() === $name) { if (Shared\StringHelper::strToUpper($table->getName()) === $name) {
unset($this->tableCollection[$key]); unset($this->tableCollection[$key]);
} }
} }

View File

@ -18,7 +18,7 @@ class RemoveTableTest extends SetupTeardown
self::assertEquals(1, $sheet->getTableCollection()->count()); self::assertEquals(1, $sheet->getTableCollection()->count());
$sheet->removeTableByName('Table1'); $sheet->removeTableByName('table1'); // case insensitive
self::assertEquals(0, $sheet->getTableCollection()->count()); self::assertEquals(0, $sheet->getTableCollection()->count());
} }

View File

@ -87,7 +87,7 @@ class TableTest extends SetupTeardown
$sheet->addTable($table1); $sheet->addTable($table1);
$table2 = new Table(); $table2 = new Table();
$table2->setName('Table_1'); $table2->setName('table_1'); // case insensitive
$sheet->addTable($table2); $sheet->addTable($table2);
} }