Table name is now case insensitive
Table name comparison changed to UTF-8 aware and case insensitive
This commit is contained in:
parent
1d99dc8d76
commit
d414f139f1
|
|
@ -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}'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue