SharedFormulaTest.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
  3. use PhpOffice\PhpSpreadsheet\IOFactory;
  4. use PhpOffice\PhpSpreadsheet\Reader\IReader;
  5. use PHPUnit\Framework\TestCase;
  6. class SharedFormulaTest extends TestCase
  7. {
  8. /**
  9. * @var string
  10. */
  11. private static $testbook = 'samples/templates/32readwriteAreaChart1.xlsx';
  12. public function testPreliminaries(): void
  13. {
  14. $file = 'zip://';
  15. $file .= self::$testbook;
  16. $file .= '#xl/worksheets/sheet1.xml';
  17. $data = file_get_contents($file);
  18. // confirm that file contains shared formula
  19. if ($data === false) {
  20. self::fail('Unable to read file');
  21. } else {
  22. self::assertStringContainsString('<c r="D6"><f t="shared" ca="1" si="0"/>', $data);
  23. self::assertStringContainsString('<c r="E6"><f t="shared" ca="1" si="0"/>', $data);
  24. }
  25. }
  26. public function testLoadSheetsXlsxChart(): void
  27. {
  28. $filename = self::$testbook;
  29. $reader = IOFactory::createReader('Xlsx');
  30. $spreadsheet = $reader->load($filename, IReader::LOAD_WITH_CHARTS);
  31. $sheet = $spreadsheet->getActiveSheet();
  32. self::assertSame('=(RANDBETWEEN(-50,250)+100)*10', $sheet->getCell('D6')->getValue());
  33. self::assertSame('=(RANDBETWEEN(-50,250)+100)*10', $sheet->getCell('E6')->getValue());
  34. $spreadsheet->disconnectWorksheets();
  35. }
  36. }