Skip to content

Commit d414f13

Browse files
committed
Table name is now case insensitive
Table name comparison changed to UTF-8 aware and case insensitive
1 parent 1d99dc8 commit d414f13

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

src/PhpSpreadsheet/Worksheet/Table.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
66
use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
7+
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
78
use PhpOffice\PhpSpreadsheet\Worksheet\Table\TableStyle;
89

910
class Table
@@ -226,10 +227,11 @@ public function setWorksheet(?Worksheet $worksheet = null): self
226227
{
227228
if ($this->name !== '' && $worksheet !== null) {
228229
$spreadsheet = $worksheet->getParent();
230+
$tableName = StringHelper::strToUpper($this->name);
229231

230232
foreach ($spreadsheet->getWorksheetIterator() as $sheet) {
231233
foreach ($sheet->getTableCollection() as $table) {
232-
if ($table->getName() === $this->name) {
234+
if (StringHelper::strToUpper($table->getName()) === $tableName) {
233235
throw new PhpSpreadsheetException("Workbook already contains a table named '{$this->name}'");
234236
}
235237
}

src/PhpSpreadsheet/Worksheet/Worksheet.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2158,8 +2158,9 @@ public function addTableByColumnAndRow($columnIndex1, $row1, $columnIndex2, $row
21582158
*/
21592159
public function removeTableByName(string $name): self
21602160
{
2161+
$name = Shared\StringHelper::strToUpper($name);
21612162
foreach ($this->tableCollection as $key => $table) {
2162-
if ($table->getName() === $name) {
2163+
if (Shared\StringHelper::strToUpper($table->getName()) === $name) {
21632164
unset($this->tableCollection[$key]);
21642165
}
21652166
}

tests/PhpSpreadsheetTests/Worksheet/Table/RemoveTableTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public function testRemoveTable(): void
1818

1919
self::assertEquals(1, $sheet->getTableCollection()->count());
2020

21-
$sheet->removeTableByName('Table1');
21+
$sheet->removeTableByName('table1'); // case insensitive
2222
self::assertEquals(0, $sheet->getTableCollection()->count());
2323
}
2424

tests/PhpSpreadsheetTests/Worksheet/Table/TableTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public function testUniqueTableName(): void
8787
$sheet->addTable($table1);
8888

8989
$table2 = new Table();
90-
$table2->setName('Table_1');
90+
$table2->setName('table_1'); // case insensitive
9191
$sheet->addTable($table2);
9292
}
9393

0 commit comments

Comments
 (0)