From 70e668a593bbb6c38e350c6b2ef1fbda5f5e59b1 Mon Sep 17 00:00:00 2001 From: MarkBaker Date: Wed, 21 Dec 2022 11:38:44 +0100 Subject: [PATCH] Unit Tests --- src/PhpSpreadsheet/Worksheet/Worksheet.php | 10 ++++++++ .../Worksheet/WorksheetTest.php | 25 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/PhpSpreadsheet/Worksheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet/Worksheet.php index 24faea71f..d71bc38f5 100644 --- a/src/PhpSpreadsheet/Worksheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet/Worksheet.php @@ -2236,6 +2236,11 @@ class Worksheet implements IComparable return $tableNames; } + /** + * @param string $name the table name to search + * + * @return null|Table The table from the tables collection, or null if not found + */ public function getTableByName(string $name): ?Table { $tableIndex = $this->getTableIndexByName($name); @@ -2243,6 +2248,11 @@ class Worksheet implements IComparable return ($tableIndex === null) ? null : $this->tableCollection[$tableIndex]; } + /** + * @param string $name the table name to search + * + * @return null|int The index of the located table in the tables collection, or null if not found + */ protected function getTableIndexByName(string $name): ?int { $name = Shared\StringHelper::strToUpper($name); diff --git a/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php b/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php index 30da1d759..6458c4c30 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php @@ -4,8 +4,10 @@ namespace PhpOffice\PhpSpreadsheetTests\Worksheet; use Exception; use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\CellIterator; +use PhpOffice\PhpSpreadsheet\Worksheet\Table; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PHPUnit\Framework\TestCase; @@ -506,4 +508,27 @@ class WorksheetTest extends TestCase ['I', true], ]; } + + public function testGetTableNames(): void + { + $reader = new Xlsx(); + $spreadsheet = $reader->load('tests/data/Worksheet/Table/TableFormulae.xlsx'); + $worksheet = $spreadsheet->getActiveSheet(); + + $tables = $worksheet->getTableNames(); + self::assertSame(['DeptSales'], $tables); + } + + public function testGetTableByName(): void + { + $reader = new Xlsx(); + $spreadsheet = $reader->load('tests/data/Worksheet/Table/TableFormulae.xlsx'); + $worksheet = $spreadsheet->getActiveSheet(); + + $table = $worksheet->getTableByName('Non-existent Table'); + self::assertNull($table); + + $table = $worksheet->getTableByName('DeptSales'); + self::assertInstanceOf(Table::class, $table); + } }