setIncludeCharts(true); $spreadsheet = $reader->load($file); $sheet = $spreadsheet->getActiveSheet(); $charts = $sheet->getChartCollection(); self::assertCount(1, $charts); $chart = $charts[0]; self::assertNotNull($chart); $writer = new XlsxWriter($spreadsheet); $writer->setIncludeCharts(true); $writerChart = new XlsxWriter\Chart($writer); $data = $writerChart->writeChart($chart); $spreadsheet->disconnectWorksheets(); self::assertSame(1, substr_count($data, '')); self::assertSame($expectedCount, substr_count($data, '')); } public static function providerScatterCharts(): array { return [ 'no line' => [0, '32readwriteScatterChart1.xlsx'], 'smooth line (Bezier)' => [3, '32readwriteScatterChart2.xlsx'], 'straight line' => [0, '32readwriteScatterChart3.xlsx'], ]; } public function testAreaPercentageNoCat(): void { $file = self::DIRECTORY . '32readwriteAreaPercentageChart1.xlsx'; $reader = new XlsxReader(); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($file); $sheet = $spreadsheet->getActiveSheet(); $charts = $sheet->getChartCollection(); self::assertCount(1, $charts); $chart = $charts[0]; self::assertNotNull($chart); $writer = new XlsxWriter($spreadsheet); $writer->setIncludeCharts(true); $writerChart = new XlsxWriter\Chart($writer); $data = $writerChart->writeChart($chart); $spreadsheet->disconnectWorksheets(); // confirm that file contains expected tags self::assertSame(0, substr_count($data, '')); } /** * @dataProvider providerCatAxValAx */ public function testCatAxValAx(?bool $numeric): void { $file = self::DIRECTORY . '32readwriteScatterChart1.xlsx'; $reader = new XlsxReader(); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($file); $sheet = $spreadsheet->getActiveSheet(); $charts = $sheet->getChartCollection(); self::assertCount(1, $charts); $chart = $charts[0]; self::assertNotNull($chart); $xAxis = $chart->getChartAxisX(); $yAxis = $chart->getChartAxisY(); self::assertSame(Properties::FORMAT_CODE_GENERAL, $xAxis->getAxisNumberFormat()); if (is_bool($numeric)) { $xAxis->setAxisNumberProperties(Properties::FORMAT_CODE_GENERAL, true); } self::assertSame('valAx', $yAxis->getAxisType()); self::assertSame('valAx', $xAxis->getAxisType()); self::assertSame(Properties::FORMAT_CODE_GENERAL, $yAxis->getAxisNumberFormat()); $xAxis->setAxisType(''); $yAxis->setAxisType(''); if (is_bool($numeric)) { $xAxis->setAxisNumberProperties(Properties::FORMAT_CODE_GENERAL, $numeric); $yAxis->setAxisNumberProperties(Properties::FORMAT_CODE_GENERAL, $numeric); } $writer = new XlsxWriter($spreadsheet); $writer->setIncludeCharts(true); $writerChart = new XlsxWriter\Chart($writer); $data = $writerChart->writeChart($chart); $spreadsheet->disconnectWorksheets(); if ($numeric === true) { self::assertSame(0, substr_count($data, '')); self::assertSame(2, substr_count($data, '')); } else { self::assertSame(1, substr_count($data, '')); self::assertSame(1, substr_count($data, '')); } } public static function providerCatAxValAx(): array { return [ [true], [false], [null], ]; } public function testCatAxValAxFromRead(): void { $file = self::DIRECTORY . '32readwriteScatterChart1.xlsx'; $reader = new XlsxReader(); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($file); $sheet = $spreadsheet->getActiveSheet(); $charts = $sheet->getChartCollection(); self::assertCount(1, $charts); $chart = $charts[0]; self::assertNotNull($chart); $xAxis = $chart->getChartAxisX(); $yAxis = $chart->getChartAxisY(); self::assertSame(Properties::FORMAT_CODE_GENERAL, $xAxis->getAxisNumberFormat()); self::assertSame('valAx', $yAxis->getAxisType()); self::assertSame('valAx', $xAxis->getAxisType()); self::assertSame(Properties::FORMAT_CODE_GENERAL, $yAxis->getAxisNumberFormat()); $writer = new XlsxWriter($spreadsheet); $writer->setIncludeCharts(true); $writerChart = new XlsxWriter\Chart($writer); $data = $writerChart->writeChart($chart); $spreadsheet->disconnectWorksheets(); self::assertSame(0, substr_count($data, '')); self::assertSame(2, substr_count($data, '')); } public function testAreaPrstClr(): void { $file = self::DIRECTORY . '32readwriteAreaChart4.xlsx'; $reader = new XlsxReader(); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($file); $sheet = $spreadsheet->getActiveSheet(); $charts = $sheet->getChartCollection(); self::assertCount(1, $charts); $chart = $charts[0]; self::assertNotNull($chart); $writer = new XlsxWriter($spreadsheet); $writer->setIncludeCharts(true); $writerChart = new XlsxWriter\Chart($writer); $data = $writerChart->writeChart($chart); $spreadsheet->disconnectWorksheets(); self::assertSame( 1, substr_count( $data, '' ) ); } public function testDateAx(): void { $file = self::DIRECTORY . '32readwriteLineDateAxisChart1.xlsx'; $reader = new XlsxReader(); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($file); $sheet = $spreadsheet->getActiveSheet(); $charts = $sheet->getChartCollection(); self::assertCount(2, $charts); $chart = $charts[1]; self::assertNotNull($chart); $writer = new XlsxWriter($spreadsheet); $writer->setIncludeCharts(true); $writerChart = new XlsxWriter\Chart($writer); $data = $writerChart->writeChart($chart); $spreadsheet->disconnectWorksheets(); self::assertSame( 1, substr_count( $data, '' ) ); self::assertSame( 1, substr_count( $data, '' ) ); self::assertSame( 1, substr_count( $data, '' ) ); } }