ActiveSheetTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Functional;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PhpOffice\PhpSpreadsheet\Style\Protection;
  5. class ActiveSheetTest extends AbstractFunctional
  6. {
  7. public function providerFormats(): array
  8. {
  9. return [
  10. ['Xls'],
  11. ];
  12. }
  13. /**
  14. * Test load file with correct active sheet.
  15. *
  16. * @dataProvider providerFormats
  17. *
  18. * @param string $format
  19. */
  20. public function testActiveSheet($format): void
  21. {
  22. $spreadsheet = new Spreadsheet();
  23. $spreadsheet->setActiveSheetIndex(0)
  24. ->setTitle('Test1')
  25. ->setCellValue('D1', 1)
  26. ->setCellValue('D2', 2)
  27. ->setCellValue('D3', 3)
  28. ->setCellValue('D4', 4)
  29. ->setCellValue('D5', '=SUM(D1:D4)')
  30. ->setSelectedCell('B2');
  31. $spreadsheet->createSheet(1);
  32. $spreadsheet->setActiveSheetIndex(1)
  33. ->setTitle('Test2')
  34. ->setCellValue('D1', 4)
  35. ->setCellValue('E1', 3)
  36. ->setCellValue('F1', 2)
  37. ->setCellValue('G1', 1)
  38. ->setCellValue('H1', '=SUM(D1:G4)')
  39. ->setSelectedCells('A1:B2');
  40. $spreadsheet->createSheet(2);
  41. $spreadsheet->setActiveSheetIndex(2)
  42. ->setCellValue('F1', 2)
  43. ->getCell('F1')
  44. ->getStyle()
  45. ->getProtection()
  46. ->setHidden(Protection::PROTECTION_PROTECTED);
  47. $spreadsheet->setActiveSheetIndex(2)
  48. ->setTitle('Test3')
  49. ->setCellValue('A1', 4)
  50. ->setCellValue('B1', 3)
  51. ->setCellValue('C1', 2)
  52. ->setCellValue('D1', 1)
  53. ->setCellValue('E1', '=SUM(A1:D4)')
  54. ->setSelectedCells('A1:D1');
  55. $spreadsheet->setActiveSheetIndex(1);
  56. $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
  57. // Original object.
  58. self::assertSame(1, $spreadsheet->getActiveSheetIndex());
  59. // Saved and reloaded file.
  60. self::assertSame(1, $reloadedSpreadsheet->getActiveSheetIndex());
  61. }
  62. }