SheetsXlsxChartTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
  3. use PhpOffice\PhpSpreadsheet\Chart\DataSeries;
  4. use PhpOffice\PhpSpreadsheet\IOFactory;
  5. use PhpOffice\PhpSpreadsheet\Reader\IReader;
  6. use PHPUnit\Framework\TestCase;
  7. class SheetsXlsxChartTest extends TestCase
  8. {
  9. public function testLoadSheetsXlsxChart(): void
  10. {
  11. $filename = 'tests/data/Reader/XLSX/sheetsChartsTest.xlsx';
  12. $reader = IOFactory::createReader('Xlsx');
  13. $spreadsheet = $reader->load($filename, IReader::LOAD_WITH_CHARTS);
  14. $worksheet = $spreadsheet->getActiveSheet();
  15. $charts = $worksheet->getChartCollection();
  16. self::assertEquals(2, $worksheet->getChartCount());
  17. self::assertCount(2, $charts);
  18. $chart1 = $charts[0];
  19. self::assertNotNull($chart1);
  20. $pa1 = $chart1->getPlotArea();
  21. self::assertNotNull($pa1);
  22. self::assertEquals(2, $pa1->getPlotSeriesCount());
  23. $pg1 = $pa1->getPlotGroup()[0];
  24. self::assertEquals(DataSeries::TYPE_LINECHART, $pg1->getPlotType());
  25. self::assertCount(2, $pg1->getPlotLabels());
  26. self::assertCount(2, $pg1->getPlotValues());
  27. self::assertCount(2, $pg1->getPlotCategories());
  28. $chart2 = $charts[1];
  29. self::assertNotNull($chart2);
  30. $pa1 = $chart2->getPlotArea();
  31. self::assertNotNull($pa1);
  32. self::assertEquals(2, $pa1->getPlotSeriesCount());
  33. $pg1 = $pa1->getPlotGroupByIndex(0);
  34. //Before a refresh, data values are empty
  35. foreach ($pg1->getPlotValues() as $dv) {
  36. self::assertEmpty($dv->getPointCount());
  37. }
  38. $pg1->refresh($worksheet);
  39. foreach ($pg1->getPlotValues() as $dv) {
  40. self::assertEquals(9, $dv->getPointCount());
  41. }
  42. self::assertEquals(DataSeries::TYPE_SCATTERCHART, $pg1->getPlotType());
  43. self::assertCount(2, $pg1->getPlotLabels());
  44. self::assertCount(2, $pg1->getPlotValues());
  45. self::assertCount(2, $pg1->getPlotCategories());
  46. }
  47. }