DefinedNamesTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Writer\Ods;
  3. use PhpOffice\PhpSpreadsheet\NamedFormula;
  4. use PhpOffice\PhpSpreadsheet\NamedRange;
  5. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  6. use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
  7. class DefinedNamesTest extends AbstractFunctional
  8. {
  9. public function testDefinedNamesWriter(): void
  10. {
  11. $spreadsheet = new Spreadsheet();
  12. $worksheet = $spreadsheet->getActiveSheet();
  13. $dataSet = [
  14. [7, 'x', 5],
  15. ['=', '=FORMULA'],
  16. ];
  17. $worksheet->fromArray($dataSet, null, 'A1');
  18. $spreadsheet->addDefinedName(new NamedRange('FIRST', $worksheet, '$A$1'));
  19. $spreadsheet->addDefinedName(new NamedRange('SECOND', $worksheet, '$C$1'));
  20. $spreadsheet->addDefinedName(new NamedFormula('FORMULA', $worksheet, '=FIRST*SECOND'));
  21. $reloaded = $this->writeAndReload($spreadsheet, 'Ods');
  22. self::assertSame(7, $reloaded->getActiveSheet()->getCell('FIRST')->getValue());
  23. self::assertSame(5, $reloaded->getActiveSheet()->getCell('SECOND')->getValue());
  24. self::assertSame(35, $reloaded->getActiveSheet()->getCell('B2')->getCalculatedValue());
  25. }
  26. }