From d49567aad038fc8183678ab5b2e78caa2e177b7d Mon Sep 17 00:00:00 2001 From: Chris Wolcott Date: Sat, 18 Apr 2020 10:37:45 -0400 Subject: [PATCH] File containing a chart can be opened by Excel 2003/2013/2019 All chart examples passed the displayBlanksAs parameter as 0 instead of 'gap'. I added a constants EMPTY_AS_GAP, EMPTY_AS_ZERO and EMPTY_AS_SPAN to the DataSeries and then change all chart samples to use this new constant. Fixes #1337 Closes #1448 --- CHANGELOG.md | 2 +- samples/Chart/33_Chart_create_area.php | 2 +- samples/Chart/33_Chart_create_bar_stacked.php | 2 +- samples/Chart/33_Chart_create_column.php | 2 +- samples/Chart/33_Chart_create_column_2.php | 2 +- samples/Chart/33_Chart_create_composite.php | 2 +- samples/Chart/33_Chart_create_line.php | 2 +- samples/Chart/33_Chart_create_multiple_charts.php | 2 +- samples/Chart/33_Chart_create_pie.php | 2 +- samples/Chart/33_Chart_create_pie_custom_colors.php | 2 +- samples/Chart/33_Chart_create_radar.php | 2 +- samples/Chart/33_Chart_create_scatter.php | 2 +- samples/Chart/33_Chart_create_stock.php | 2 +- src/PhpSpreadsheet/Chart/Chart.php | 2 +- src/PhpSpreadsheet/Chart/DataSeries.php | 4 ++++ 15 files changed, 18 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3ba3de8..deeb00a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org). ### Fixed -- ... +- Fix Chart samples by updating chart parameter from 0 to DataSeries::EMPTY_AS_GAP [#1448](https://github.com/PHPOffice/PhpSpreadsheet/pull/1448) ### Changed diff --git a/samples/Chart/33_Chart_create_area.php b/samples/Chart/33_Chart_create_area.php index 4478d2dd..860c16a6 100644 --- a/samples/Chart/33_Chart_create_area.php +++ b/samples/Chart/33_Chart_create_area.php @@ -83,7 +83,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_bar_stacked.php b/samples/Chart/33_Chart_create_bar_stacked.php index 7ba4d8de..0aa211a9 100644 --- a/samples/Chart/33_Chart_create_bar_stacked.php +++ b/samples/Chart/33_Chart_create_bar_stacked.php @@ -86,7 +86,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_column.php b/samples/Chart/33_Chart_create_column.php index 9ffe9d3f..694082a4 100644 --- a/samples/Chart/33_Chart_create_column.php +++ b/samples/Chart/33_Chart_create_column.php @@ -86,7 +86,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_column_2.php b/samples/Chart/33_Chart_create_column_2.php index bba9210a..f5a529b9 100644 --- a/samples/Chart/33_Chart_create_column_2.php +++ b/samples/Chart/33_Chart_create_column_2.php @@ -95,7 +95,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs $xAxisLabel, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_composite.php b/samples/Chart/33_Chart_create_composite.php index 83dc34a9..dfeacae3 100644 --- a/samples/Chart/33_Chart_create_composite.php +++ b/samples/Chart/33_Chart_create_composite.php @@ -139,7 +139,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel null // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_line.php b/samples/Chart/33_Chart_create_line.php index bdaf0111..feae2f27 100644 --- a/samples/Chart/33_Chart_create_line.php +++ b/samples/Chart/33_Chart_create_line.php @@ -84,7 +84,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_multiple_charts.php b/samples/Chart/33_Chart_create_multiple_charts.php index 10a11e13..d0de5db4 100644 --- a/samples/Chart/33_Chart_create_multiple_charts.php +++ b/samples/Chart/33_Chart_create_multiple_charts.php @@ -158,7 +158,7 @@ $chart2 = new Chart( $legend2, // legend $plotArea2, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel $yAxisLabel2 // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_pie.php b/samples/Chart/33_Chart_create_pie.php index d4ec0752..54d5916b 100644 --- a/samples/Chart/33_Chart_create_pie.php +++ b/samples/Chart/33_Chart_create_pie.php @@ -84,7 +84,7 @@ $chart1 = new Chart( $legend1, // legend $plotArea1, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel null // yAxisLabel - Pie charts don't have a Y-Axis ); diff --git a/samples/Chart/33_Chart_create_pie_custom_colors.php b/samples/Chart/33_Chart_create_pie_custom_colors.php index 727a0cde..0e9ce4b7 100644 --- a/samples/Chart/33_Chart_create_pie_custom_colors.php +++ b/samples/Chart/33_Chart_create_pie_custom_colors.php @@ -162,7 +162,7 @@ $chart2 = new Chart( null, // legend $plotArea2, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel null // yAxisLabel - Like Pie charts, Donut charts don't have a Y-Axis ); diff --git a/samples/Chart/33_Chart_create_radar.php b/samples/Chart/33_Chart_create_radar.php index e57914ab..1c5c435f 100644 --- a/samples/Chart/33_Chart_create_radar.php +++ b/samples/Chart/33_Chart_create_radar.php @@ -96,7 +96,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel null // yAxisLabel - Radar charts don't have a Y-Axis ); diff --git a/samples/Chart/33_Chart_create_scatter.php b/samples/Chart/33_Chart_create_scatter.php index 12fc2bdc..02fa866d 100644 --- a/samples/Chart/33_Chart_create_scatter.php +++ b/samples/Chart/33_Chart_create_scatter.php @@ -80,7 +80,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs null, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/samples/Chart/33_Chart_create_stock.php b/samples/Chart/33_Chart_create_stock.php index 7a9f7274..4e8ffe8e 100644 --- a/samples/Chart/33_Chart_create_stock.php +++ b/samples/Chart/33_Chart_create_stock.php @@ -92,7 +92,7 @@ $chart = new Chart( $legend, // legend $plotArea, // plotArea true, // plotVisibleOnly - 0, // displayBlanksAs + DataSeries::EMPTY_AS_GAP, // displayBlanksAs $xAxisLabel, // xAxisLabel $yAxisLabel // yAxisLabel ); diff --git a/src/PhpSpreadsheet/Chart/Chart.php b/src/PhpSpreadsheet/Chart/Chart.php index 59c9ed5d..bc42c854 100644 --- a/src/PhpSpreadsheet/Chart/Chart.php +++ b/src/PhpSpreadsheet/Chart/Chart.php @@ -156,7 +156,7 @@ class Chart * @param null|GridLines $majorGridlines * @param null|GridLines $minorGridlines */ - public function __construct($name, Title $title = null, Legend $legend = null, PlotArea $plotArea = null, $plotVisibleOnly = true, $displayBlanksAs = 'gap', Title $xAxisLabel = null, Title $yAxisLabel = null, Axis $xAxis = null, Axis $yAxis = null, GridLines $majorGridlines = null, GridLines $minorGridlines = null) + public function __construct($name, Title $title = null, Legend $legend = null, PlotArea $plotArea = null, $plotVisibleOnly = true, $displayBlanksAs = DataSeries::EMPTY_AS_GAP, Title $xAxisLabel = null, Title $yAxisLabel = null, Axis $xAxis = null, Axis $yAxis = null, GridLines $majorGridlines = null, GridLines $minorGridlines = null) { $this->name = $name; $this->title = $title; diff --git a/src/PhpSpreadsheet/Chart/DataSeries.php b/src/PhpSpreadsheet/Chart/DataSeries.php index c20efabe..79f4e8d1 100644 --- a/src/PhpSpreadsheet/Chart/DataSeries.php +++ b/src/PhpSpreadsheet/Chart/DataSeries.php @@ -40,6 +40,10 @@ class DataSeries const STYLE_MARKER = 'marker'; const STYLE_FILLED = 'filled'; + const EMPTY_AS_GAP = 'gap'; + const EMPTY_AS_ZERO = 'zero'; + const EMPTY_AS_SPAN = 'span'; + /** * Series Plot Type. *