81 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace PhpOffice\PhpSpreadsheetTests\Functional;
 | |
| 
 | |
| use PhpOffice\PhpSpreadsheet\Spreadsheet;
 | |
| 
 | |
| class WorkbookViewAttributesTest extends AbstractFunctional
 | |
| {
 | |
|     public function providerFormats()
 | |
|     {
 | |
|         return [
 | |
|             ['Xlsx'],
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Test that workbook bookview attributes such as 'showSheetTabs',
 | |
|      * (the attribute controlling worksheet tabs visibility,)
 | |
|      * are preserved when xlsx documents are read and written.
 | |
|      *
 | |
|      * @see https://github.com/PHPOffice/PhpSpreadsheet/issues/523
 | |
|      *
 | |
|      * @dataProvider providerFormats
 | |
|      *
 | |
|      * @param string $format
 | |
|      */
 | |
|     public function testPreserveWorkbookViewAttributes($format): void
 | |
|     {
 | |
|         // Create a dummy workbook with two worksheets
 | |
|         $workbook = new Spreadsheet();
 | |
|         $worksheet1 = $workbook->getActiveSheet();
 | |
|         $worksheet1->setTitle('Tweedledee');
 | |
|         $worksheet1->setCellValue('A1', 1);
 | |
|         $worksheet2 = $workbook->createSheet();
 | |
|         $worksheet2->setTitle('Tweeldedum');
 | |
|         $worksheet2->setCellValue('A1', 2);
 | |
| 
 | |
|         // Check that the bookview attributes return default values
 | |
|         self::assertTrue($workbook->getShowHorizontalScroll());
 | |
|         self::assertTrue($workbook->getShowVerticalScroll());
 | |
|         self::assertTrue($workbook->getShowSheetTabs());
 | |
|         self::assertTrue($workbook->getAutoFilterDateGrouping());
 | |
|         self::assertFalse($workbook->getMinimized());
 | |
|         self::assertSame(0, $workbook->getFirstSheetIndex());
 | |
|         self::assertSame(600, $workbook->getTabRatio());
 | |
|         self::assertSame(Spreadsheet::VISIBILITY_VISIBLE, $workbook->getVisibility());
 | |
| 
 | |
|         // Set the bookview attributes to non-default values
 | |
|         $workbook->setShowHorizontalScroll(false);
 | |
|         $workbook->setShowVerticalScroll(false);
 | |
|         $workbook->setShowSheetTabs(false);
 | |
|         $workbook->setAutoFilterDateGrouping(false);
 | |
|         $workbook->setMinimized(true);
 | |
|         $workbook->setFirstSheetIndex(1);
 | |
|         $workbook->setTabRatio(700);
 | |
|         $workbook->setVisibility(Spreadsheet::VISIBILITY_HIDDEN);
 | |
| 
 | |
|         // Check that bookview attributes were set properly
 | |
|         self::assertFalse($workbook->getShowHorizontalScroll());
 | |
|         self::assertFalse($workbook->getShowVerticalScroll());
 | |
|         self::assertFalse($workbook->getShowSheetTabs());
 | |
|         self::assertFalse($workbook->getAutoFilterDateGrouping());
 | |
|         self::assertTrue($workbook->getMinimized());
 | |
|         self::assertSame(1, $workbook->getFirstSheetIndex());
 | |
|         self::assertSame(700, $workbook->getTabRatio());
 | |
|         self::assertSame(Spreadsheet::VISIBILITY_HIDDEN, $workbook->getVisibility());
 | |
| 
 | |
|         $workbook2 = $this->writeAndReload($workbook, $format);
 | |
| 
 | |
|         // Check that the read spreadsheet has the right bookview attributes
 | |
|         self::assertFalse($workbook2->getShowHorizontalScroll());
 | |
|         self::assertFalse($workbook2->getShowVerticalScroll());
 | |
|         self::assertFalse($workbook2->getShowSheetTabs());
 | |
|         self::assertFalse($workbook2->getAutoFilterDateGrouping());
 | |
|         self::assertTrue($workbook2->getMinimized());
 | |
|         self::assertSame(1, $workbook2->getFirstSheetIndex());
 | |
|         self::assertSame(700, $workbook2->getTabRatio());
 | |
|         self::assertSame(Spreadsheet::VISIBILITY_HIDDEN, $workbook2->getVisibility());
 | |
|     }
 | |
| }
 | 
