123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390 |
- <?php
- /**
- * PHPExcel
- *
- * Copyright (c) 2006 - 2015 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * @category PHPExcel
- * @package PHPExcel_Chart
- * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
- * @version ##VERSION##, ##DATE##
- */
- /**
- * PHPExcel_Chart_DataSeries
- *
- * @category PHPExcel
- * @package PHPExcel_Chart
- * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
- */
- class PHPExcel_Chart_DataSeries
- {
- const TYPE_BARCHART = 'barChart';
- const TYPE_BARCHART_3D = 'bar3DChart';
- const TYPE_LINECHART = 'lineChart';
- const TYPE_LINECHART_3D = 'line3DChart';
- const TYPE_AREACHART = 'areaChart';
- const TYPE_AREACHART_3D = 'area3DChart';
- const TYPE_PIECHART = 'pieChart';
- const TYPE_PIECHART_3D = 'pie3DChart';
- const TYPE_DOUGHTNUTCHART = 'doughnutChart';
- const TYPE_DONUTCHART = self::TYPE_DOUGHTNUTCHART; // Synonym
- const TYPE_SCATTERCHART = 'scatterChart';
- const TYPE_SURFACECHART = 'surfaceChart';
- const TYPE_SURFACECHART_3D = 'surface3DChart';
- const TYPE_RADARCHART = 'radarChart';
- const TYPE_BUBBLECHART = 'bubbleChart';
- const TYPE_STOCKCHART = 'stockChart';
- const TYPE_CANDLECHART = self::TYPE_STOCKCHART; // Synonym
- const GROUPING_CLUSTERED = 'clustered';
- const GROUPING_STACKED = 'stacked';
- const GROUPING_PERCENT_STACKED = 'percentStacked';
- const GROUPING_STANDARD = 'standard';
- const DIRECTION_BAR = 'bar';
- const DIRECTION_HORIZONTAL = self::DIRECTION_BAR;
- const DIRECTION_COL = 'col';
- const DIRECTION_COLUMN = self::DIRECTION_COL;
- const DIRECTION_VERTICAL = self::DIRECTION_COL;
- const STYLE_LINEMARKER = 'lineMarker';
- const STYLE_SMOOTHMARKER = 'smoothMarker';
- const STYLE_MARKER = 'marker';
- const STYLE_FILLED = 'filled';
- /**
- * Series Plot Type
- *
- * @var string
- */
- private $plotType;
- /**
- * Plot Grouping Type
- *
- * @var boolean
- */
- private $plotGrouping;
- /**
- * Plot Direction
- *
- * @var boolean
- */
- private $plotDirection;
- /**
- * Plot Style
- *
- * @var string
- */
- private $plotStyle;
- /**
- * Order of plots in Series
- *
- * @var array of integer
- */
- private $plotOrder = array();
- /**
- * Plot Label
- *
- * @var array of PHPExcel_Chart_DataSeriesValues
- */
- private $plotLabel = array();
- /**
- * Plot Category
- *
- * @var array of PHPExcel_Chart_DataSeriesValues
- */
- private $plotCategory = array();
- /**
- * Smooth Line
- *
- * @var string
- */
- private $smoothLine;
- /**
- * Plot Values
- *
- * @var array of PHPExcel_Chart_DataSeriesValues
- */
- private $plotValues = array();
- /**
- * Create a new PHPExcel_Chart_DataSeries
- */
- public function __construct($plotType = null, $plotGrouping = null, $plotOrder = array(), $plotLabel = array(), $plotCategory = array(), $plotValues = array(), $plotDirection = null, $smoothLine = null, $plotStyle = null)
- {
- $this->plotType = $plotType;
- $this->plotGrouping = $plotGrouping;
- $this->plotOrder = $plotOrder;
- $keys = array_keys($plotValues);
- $this->plotValues = $plotValues;
- if ((count($plotLabel) == 0) || (is_null($plotLabel[$keys[0]]))) {
- $plotLabel[$keys[0]] = new PHPExcel_Chart_DataSeriesValues();
- }
- $this->plotLabel = $plotLabel;
- if ((count($plotCategory) == 0) || (is_null($plotCategory[$keys[0]]))) {
- $plotCategory[$keys[0]] = new PHPExcel_Chart_DataSeriesValues();
- }
- $this->plotCategory = $plotCategory;
- $this->smoothLine = $smoothLine;
- $this->plotStyle = $plotStyle;
-
- if (is_null($plotDirection)) {
- $plotDirection = self::DIRECTION_COL;
- }
- $this->plotDirection = $plotDirection;
- }
- /**
- * Get Plot Type
- *
- * @return string
- */
- public function getPlotType()
- {
- return $this->plotType;
- }
- /**
- * Set Plot Type
- *
- * @param string $plotType
- * @return PHPExcel_Chart_DataSeries
- */
- public function setPlotType($plotType = '')
- {
- $this->plotType = $plotType;
- return $this;
- }
- /**
- * Get Plot Grouping Type
- *
- * @return string
- */
- public function getPlotGrouping()
- {
- return $this->plotGrouping;
- }
- /**
- * Set Plot Grouping Type
- *
- * @param string $groupingType
- * @return PHPExcel_Chart_DataSeries
- */
- public function setPlotGrouping($groupingType = null)
- {
- $this->plotGrouping = $groupingType;
- return $this;
- }
- /**
- * Get Plot Direction
- *
- * @return string
- */
- public function getPlotDirection()
- {
- return $this->plotDirection;
- }
- /**
- * Set Plot Direction
- *
- * @param string $plotDirection
- * @return PHPExcel_Chart_DataSeries
- */
- public function setPlotDirection($plotDirection = null)
- {
- $this->plotDirection = $plotDirection;
- return $this;
- }
- /**
- * Get Plot Order
- *
- * @return string
- */
- public function getPlotOrder()
- {
- return $this->plotOrder;
- }
- /**
- * Get Plot Labels
- *
- * @return array of PHPExcel_Chart_DataSeriesValues
- */
- public function getPlotLabels()
- {
- return $this->plotLabel;
- }
- /**
- * Get Plot Label by Index
- *
- * @return PHPExcel_Chart_DataSeriesValues
- */
- public function getPlotLabelByIndex($index)
- {
- $keys = array_keys($this->plotLabel);
- if (in_array($index, $keys)) {
- return $this->plotLabel[$index];
- } elseif (isset($keys[$index])) {
- return $this->plotLabel[$keys[$index]];
- }
- return false;
- }
- /**
- * Get Plot Categories
- *
- * @return array of PHPExcel_Chart_DataSeriesValues
- */
- public function getPlotCategories()
- {
- return $this->plotCategory;
- }
- /**
- * Get Plot Category by Index
- *
- * @return PHPExcel_Chart_DataSeriesValues
- */
- public function getPlotCategoryByIndex($index)
- {
- $keys = array_keys($this->plotCategory);
- if (in_array($index, $keys)) {
- return $this->plotCategory[$index];
- } elseif (isset($keys[$index])) {
- return $this->plotCategory[$keys[$index]];
- }
- return false;
- }
- /**
- * Get Plot Style
- *
- * @return string
- */
- public function getPlotStyle()
- {
- return $this->plotStyle;
- }
- /**
- * Set Plot Style
- *
- * @param string $plotStyle
- * @return PHPExcel_Chart_DataSeries
- */
- public function setPlotStyle($plotStyle = null)
- {
- $this->plotStyle = $plotStyle;
- return $this;
- }
- /**
- * Get Plot Values
- *
- * @return array of PHPExcel_Chart_DataSeriesValues
- */
- public function getPlotValues()
- {
- return $this->plotValues;
- }
- /**
- * Get Plot Values by Index
- *
- * @return PHPExcel_Chart_DataSeriesValues
- */
- public function getPlotValuesByIndex($index)
- {
- $keys = array_keys($this->plotValues);
- if (in_array($index, $keys)) {
- return $this->plotValues[$index];
- } elseif (isset($keys[$index])) {
- return $this->plotValues[$keys[$index]];
- }
- return false;
- }
- /**
- * Get Number of Plot Series
- *
- * @return integer
- */
- public function getPlotSeriesCount()
- {
- return count($this->plotValues);
- }
- /**
- * Get Smooth Line
- *
- * @return boolean
- */
- public function getSmoothLine()
- {
- return $this->smoothLine;
- }
- /**
- * Set Smooth Line
- *
- * @param boolean $smoothLine
- * @return PHPExcel_Chart_DataSeries
- */
- public function setSmoothLine($smoothLine = true)
- {
- $this->smoothLine = $smoothLine;
- return $this;
- }
- public function refresh(PHPExcel_Worksheet $worksheet)
- {
- foreach ($this->plotValues as $plotValues) {
- if ($plotValues !== null) {
- $plotValues->refresh($worksheet, true);
- }
- }
- foreach ($this->plotLabel as $plotValues) {
- if ($plotValues !== null) {
- $plotValues->refresh($worksheet, true);
- }
- }
- foreach ($this->plotCategory as $plotValues) {
- if ($plotValues !== null) {
- $plotValues->refresh($worksheet, false);
- }
- }
- }
- }
|