{"record":{"id":"f2736d751834880f","repo":"PHPOffice/PhpSpreadsheet","slug":"spreadsheet-already-contains-a-table-named-this","errorCode":null,"errorMessage":"Spreadsheet already contains a table named '{$this->name}'","messagePattern":"Spreadsheet already contains a table named '(.+?)'","errorType":"exception","errorClass":"PhpOffice\\PhpSpreadsheet\\Exception","httpStatus":null,"severity":"error","filePath":"src/PhpSpreadsheet/Worksheet/Table.php","lineNumber":150,"sourceCode":"\n        return $this;\n    }\n\n    /**\n     * @throws PhpSpreadsheetException\n     */\n    private function checkForDuplicateTableNames(string $name, ?Worksheet $worksheet): void\n    {\n        // Remember that table names are case-insensitive\n        $tableName = StringHelper::strToLower($name);\n\n        if ($worksheet !== null && StringHelper::strToLower($this->name) !== $name) {\n            $spreadsheet = $worksheet->getParentOrThrow();\n\n            foreach ($spreadsheet->getWorksheetIterator() as $sheet) {\n                foreach ($sheet->getTableCollection() as $table) {\n                    if (StringHelper::strToLower($table->getName()) === $tableName && $table != $this) {\n                        throw new PhpSpreadsheetException(\"Spreadsheet already contains a table named '{$this->name}'\");\n                    }\n                }\n            }\n        }\n    }\n\n    private function updateStructuredReferences(string $name): void\n    {\n        if (!$this->workSheet || !$this->name) {\n            return;\n        }\n\n        // Remember that table names are case-insensitive\n        if (StringHelper::strToLower($this->name) !== StringHelper::strToLower($name)) {\n            // We need to check all formula cells that might contain fully-qualified Structured References\n            //    that refer to this table, and update those formulae to reference the new table name\n            $spreadsheet = $this->workSheet->getParentOrThrow();\n            foreach ($spreadsheet->getWorksheetIterator() as $sheet) {","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/PHPOffice/PhpSpreadsheet/blob/65b080eef4d9fd11a5796135ab145883e5c3d6a6/src/PhpSpreadsheet/Worksheet/Table.php#L132-L168","documentation":"Error \"Spreadsheet already contains a table named '{$this->name}'\" thrown in PHPOffice/PhpSpreadsheet.","triggerScenarios":"Thrown at src/PhpSpreadsheet/Worksheet/Table.php:150 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"65b080eef4d9fd11a5796135ab145883e5c3d6a6","analyzedAt":"2026-08-17T05:40:41.646Z","schemaVersion":2},"datasetVersion":"2026-08-17T09:17:11.063Z"}