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\Exception as PhpSpreadsheetException;
|
||||
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Table\TableStyle;
|
||||
|
||||
class Table
|
||||
|
|
@ -226,10 +227,11 @@ class Table
|
|||
{
|
||||
if ($this->name !== '' && $worksheet !== null) {
|
||||
$spreadsheet = $worksheet->getParent();
|
||||
$tableName = StringHelper::strToUpper($this->name);
|
||||
|
||||
foreach ($spreadsheet->getWorksheetIterator() as $sheet) {
|
||||
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}'");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2158,8 +2158,9 @@ class Worksheet implements IComparable
|
|||
*/
|
||||
public function removeTableByName(string $name): self
|
||||
{
|
||||
$name = Shared\StringHelper::strToUpper($name);
|
||||
foreach ($this->tableCollection as $key => $table) {
|
||||
if ($table->getName() === $name) {
|
||||
if (Shared\StringHelper::strToUpper($table->getName()) === $name) {
|
||||
unset($this->tableCollection[$key]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class RemoveTableTest extends SetupTeardown
|
|||
|
||||
self::assertEquals(1, $sheet->getTableCollection()->count());
|
||||
|
||||
$sheet->removeTableByName('Table1');
|
||||
$sheet->removeTableByName('table1'); // case insensitive
|
||||
self::assertEquals(0, $sheet->getTableCollection()->count());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class TableTest extends SetupTeardown
|
|||
$sheet->addTable($table1);
|
||||
|
||||
$table2 = new Table();
|
||||
$table2->setName('Table_1');
|
||||
$table2->setName('table_1'); // case insensitive
|
||||
$sheet->addTable($table2);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue