diff --git a/docs/references/features-cross-reference.md b/docs/references/features-cross-reference.md index 399be82e..d18c0969 100644 --- a/docs/references/features-cross-reference.md +++ b/docs/references/features-cross-reference.md @@ -16,7 +16,7 @@ XLS XLSX - Excel2003XML + XML (Excel2003XML) Ods Gnumeric CSV @@ -732,12 +732,32 @@ + + Hidden Worksheets + ✔ + ✔ + + ✔ + ✔ + N/A + + + + + + + + + + + Coloured Tabs + N/A diff --git a/tests/PhpSpreadsheetTests/Reader/Ods/HiddenWorksheetTest.php b/tests/PhpSpreadsheetTests/Reader/Ods/HiddenWorksheetTest.php index 9edaa9b7..c02c8771 100644 --- a/tests/PhpSpreadsheetTests/Reader/Ods/HiddenWorksheetTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Ods/HiddenWorksheetTest.php @@ -32,7 +32,6 @@ class HiddenWorksheetTest extends TestCase $sheetAssertions = $assertions[$worksheet->getTitle()]; foreach ($sheetAssertions as $test => $expectedResult) { - $testMethodName = 'get' . ucfirst($test); $actualResult = $worksheet->getSheetState(); self::assertSame( $expectedResult, diff --git a/tests/PhpSpreadsheetTests/Reader/Xls/HiddenWorksheetTest.php b/tests/PhpSpreadsheetTests/Reader/Xls/HiddenWorksheetTest.php new file mode 100644 index 00000000..82fd6e12 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Reader/Xls/HiddenWorksheetTest.php @@ -0,0 +1,56 @@ +spreadsheet = $reader->load($filename); + } + + public function testPageSetup(): void + { + $assertions = $this->worksheetAssertions(); + + foreach ($this->spreadsheet->getAllSheets() as $worksheet) { + if (!array_key_exists($worksheet->getTitle(), $assertions)) { + continue; + } + + $sheetAssertions = $assertions[$worksheet->getTitle()]; + foreach ($sheetAssertions as $test => $expectedResult) { + $actualResult = $worksheet->getSheetState(); + self::assertSame( + $expectedResult, + $actualResult, + "Failed asserting sheet state {$expectedResult} for Worksheet '{$worksheet->getTitle()}' {$test}" + ); + } + } + } + + private function worksheetAssertions(): array + { + return [ + 'Sheet1' => [ + 'sheetState' => Worksheet::SHEETSTATE_VISIBLE, + ], + 'Sheet2' => [ + 'sheetState' => Worksheet::SHEETSTATE_HIDDEN, + ], + ]; + } +} diff --git a/tests/PhpSpreadsheetTests/Reader/Xlsx/HiddenWorksheetTest.php b/tests/PhpSpreadsheetTests/Reader/Xlsx/HiddenWorksheetTest.php new file mode 100644 index 00000000..130d76a6 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Reader/Xlsx/HiddenWorksheetTest.php @@ -0,0 +1,56 @@ +spreadsheet = $reader->load($filename); + } + + public function testPageSetup(): void + { + $assertions = $this->worksheetAssertions(); + + foreach ($this->spreadsheet->getAllSheets() as $worksheet) { + if (!array_key_exists($worksheet->getTitle(), $assertions)) { + continue; + } + + $sheetAssertions = $assertions[$worksheet->getTitle()]; + foreach ($sheetAssertions as $test => $expectedResult) { + $actualResult = $worksheet->getSheetState(); + self::assertSame( + $expectedResult, + $actualResult, + "Failed asserting sheet state {$expectedResult} for Worksheet '{$worksheet->getTitle()}' {$test}" + ); + } + } + } + + private function worksheetAssertions(): array + { + return [ + 'Sheet1' => [ + 'sheetState' => Worksheet::SHEETSTATE_VISIBLE, + ], + 'Sheet2' => [ + 'sheetState' => Worksheet::SHEETSTATE_HIDDEN, + ], + ]; + } +} diff --git a/tests/data/Reader/XLS/HiddenSheet.xls b/tests/data/Reader/XLS/HiddenSheet.xls new file mode 100644 index 00000000..39ced197 Binary files /dev/null and b/tests/data/Reader/XLS/HiddenSheet.xls differ diff --git a/tests/data/Reader/XLSX/HiddenSheet.xlsx b/tests/data/Reader/XLSX/HiddenSheet.xlsx new file mode 100644 index 00000000..6d1d56a2 Binary files /dev/null and b/tests/data/Reader/XLSX/HiddenSheet.xlsx differ