Rev 2388 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** PHPExcel** Copyright (c) 2006 - 2013 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 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL* @version ##VERSION##, ##DATE##*//*** PHPExcel_Chart** @category PHPExcel* @package PHPExcel_Chart* @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)*/class PHPExcel_Chart{/*** Chart Name** @var string*/private $_name = '';/*** Worksheet** @var PHPExcel_Worksheet*/private $_worksheet = null;/*** Chart Title** @var PHPExcel_Chart_Title*/private $_title = null;/*** Chart Legend** @var PHPExcel_Chart_Legend*/private $_legend = null;/*** X-Axis Label** @var PHPExcel_Chart_Title*/private $_xAxisLabel = null;/*** Y-Axis Label** @var PHPExcel_Chart_Title*/private $_yAxisLabel = null;/*** Chart Plot Area** @var PHPExcel_Chart_PlotArea*/private $_plotArea = null;/*** Plot Visible Only** @var boolean*/private $_plotVisibleOnly = true;/*** Display Blanks as** @var string*/private $_displayBlanksAs = '0';/*** Top-Left Cell Position** @var string*/private $_topLeftCellRef = 'A1';/*** Top-Left X-Offset** @var integer*/private $_topLeftXOffset = 0;/*** Top-Left Y-Offset** @var integer*/private $_topLeftYOffset = 0;/*** Bottom-Right Cell Position** @var string*/private $_bottomRightCellRef = 'A1';/*** Bottom-Right X-Offset** @var integer*/private $_bottomRightXOffset = 10;/*** Bottom-Right Y-Offset** @var integer*/private $_bottomRightYOffset = 10;/*** Create a new PHPExcel_Chart*/public function __construct($name, PHPExcel_Chart_Title $title = null, PHPExcel_Chart_Legend $legend = null, PHPExcel_Chart_PlotArea $plotArea = null, $plotVisibleOnly = true, $displayBlanksAs = '0', PHPExcel_Chart_Title $xAxisLabel = null, PHPExcel_Chart_Title $yAxisLabel = null){$this->_name = $name;$this->_title = $title;$this->_legend = $legend;$this->_xAxisLabel = $xAxisLabel;$this->_yAxisLabel = $yAxisLabel;$this->_plotArea = $plotArea;$this->_plotVisibleOnly = $plotVisibleOnly;$this->_displayBlanksAs = $displayBlanksAs;}/*** Get Name** @return string*/public function getName() {return $this->_name;}/*** Get Worksheet** @return PHPExcel_Worksheet*/public function getWorksheet() {return $this->_worksheet;}/*** Set Worksheet** @param PHPExcel_Worksheet $pValue* @throws PHPExcel_Chart_Exception* @return PHPExcel_Chart*/public function setWorksheet(PHPExcel_Worksheet $pValue = null) {$this->_worksheet = $pValue;return $this;}/*** Get Title** @return PHPExcel_Chart_Title*/public function getTitle() {return $this->_title;}/*** Set Title** @param PHPExcel_Chart_Title $title* @return PHPExcel_Chart*/public function setTitle(PHPExcel_Chart_Title $title) {$this->_title = $title;return $this;}/*** Get Legend** @return PHPExcel_Chart_Legend*/public function getLegend() {return $this->_legend;}/*** Set Legend** @param PHPExcel_Chart_Legend $legend* @return PHPExcel_Chart*/public function setLegend(PHPExcel_Chart_Legend $legend) {$this->_legend = $legend;return $this;}/*** Get X-Axis Label** @return PHPExcel_Chart_Title*/public function getXAxisLabel() {return $this->_xAxisLabel;}/*** Set X-Axis Label** @param PHPExcel_Chart_Title $label* @return PHPExcel_Chart*/public function setXAxisLabel(PHPExcel_Chart_Title $label) {$this->_xAxisLabel = $label;return $this;}/*** Get Y-Axis Label** @return PHPExcel_Chart_Title*/public function getYAxisLabel() {return $this->_yAxisLabel;}/*** Set Y-Axis Label** @param PHPExcel_Chart_Title $label* @return PHPExcel_Chart*/public function setYAxisLabel(PHPExcel_Chart_Title $label) {$this->_yAxisLabel = $label;return $this;}/*** Get Plot Area** @return PHPExcel_Chart_PlotArea*/public function getPlotArea() {return $this->_plotArea;}/*** Get Plot Visible Only** @return boolean*/public function getPlotVisibleOnly() {return $this->_plotVisibleOnly;}/*** Set Plot Visible Only** @param boolean $plotVisibleOnly* @return PHPExcel_Chart*/public function setPlotVisibleOnly($plotVisibleOnly = true) {$this->_plotVisibleOnly = $plotVisibleOnly;return $this;}/*** Get Display Blanks as** @return string*/public function getDisplayBlanksAs() {return $this->_displayBlanksAs;}/*** Set Display Blanks as** @param string $displayBlanksAs* @return PHPExcel_Chart*/public function setDisplayBlanksAs($displayBlanksAs = '0') {$this->_displayBlanksAs = $displayBlanksAs;}/*** Set the Top Left position for the chart** @param string $cell* @param integer $xOffset* @param integer $yOffset* @return PHPExcel_Chart*/public function setTopLeftPosition($cell, $xOffset=null, $yOffset=null) {$this->_topLeftCellRef = $cell;if (!is_null($xOffset))$this->setTopLeftXOffset($xOffset);if (!is_null($yOffset))$this->setTopLeftYOffset($yOffset);return $this;}/*** Get the top left position of the chart** @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell*/public function getTopLeftPosition() {return array( 'cell' => $this->_topLeftCellRef,'xOffset' => $this->_topLeftXOffset,'yOffset' => $this->_topLeftYOffset);}/*** Get the cell address where the top left of the chart is fixed** @return string*/public function getTopLeftCell() {return $this->_topLeftCellRef;}/*** Set the Top Left cell position for the chart** @param string $cell* @return PHPExcel_Chart*/public function setTopLeftCell($cell) {$this->_topLeftCellRef = $cell;return $this;}/*** Set the offset position within the Top Left cell for the chart** @param integer $xOffset* @param integer $yOffset* @return PHPExcel_Chart*/public function setTopLeftOffset($xOffset=null,$yOffset=null) {if (!is_null($xOffset))$this->setTopLeftXOffset($xOffset);if (!is_null($yOffset))$this->setTopLeftYOffset($yOffset);return $this;}/*** Get the offset position within the Top Left cell for the chart** @return integer[]*/public function getTopLeftOffset() {return array( 'X' => $this->_topLeftXOffset,'Y' => $this->_topLeftYOffset);}public function setTopLeftXOffset($xOffset) {$this->_topLeftXOffset = $xOffset;return $this;}public function getTopLeftXOffset() {return $this->_topLeftXOffset;}public function setTopLeftYOffset($yOffset) {$this->_topLeftYOffset = $yOffset;return $this;}public function getTopLeftYOffset() {return $this->_topLeftYOffset;}/*** Set the Bottom Right position of the chart** @param string $cell* @param integer $xOffset* @param integer $yOffset* @return PHPExcel_Chart*/public function setBottomRightPosition($cell, $xOffset=null, $yOffset=null) {$this->_bottomRightCellRef = $cell;if (!is_null($xOffset))$this->setBottomRightXOffset($xOffset);if (!is_null($yOffset))$this->setBottomRightYOffset($yOffset);return $this;}/*** Get the bottom right position of the chart** @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell*/public function getBottomRightPosition() {return array( 'cell' => $this->_bottomRightCellRef,'xOffset' => $this->_bottomRightXOffset,'yOffset' => $this->_bottomRightYOffset);}public function setBottomRightCell($cell) {$this->_bottomRightCellRef = $cell;return $this;}/*** Get the cell address where the bottom right of the chart is fixed** @return string*/public function getBottomRightCell() {return $this->_bottomRightCellRef;}/*** Set the offset position within the Bottom Right cell for the chart** @param integer $xOffset* @param integer $yOffset* @return PHPExcel_Chart*/public function setBottomRightOffset($xOffset=null,$yOffset=null) {if (!is_null($xOffset))$this->setBottomRightXOffset($xOffset);if (!is_null($yOffset))$this->setBottomRightYOffset($yOffset);return $this;}/*** Get the offset position within the Bottom Right cell for the chart** @return integer[]*/public function getBottomRightOffset() {return array( 'X' => $this->_bottomRightXOffset,'Y' => $this->_bottomRightYOffset);}public function setBottomRightXOffset($xOffset) {$this->_bottomRightXOffset = $xOffset;return $this;}public function getBottomRightXOffset() {return $this->_bottomRightXOffset;}public function setBottomRightYOffset($yOffset) {$this->_bottomRightYOffset = $yOffset;return $this;}public function getBottomRightYOffset() {return $this->_bottomRightYOffset;}public function refresh() {if ($this->_worksheet !== NULL) {$this->_plotArea->refresh($this->_worksheet);}}public function render($outputDestination = null) {$libraryName = PHPExcel_Settings::getChartRendererName();if (is_null($libraryName)) {return false;}// Ensure that data series values are up-to-date before we render$this->refresh();$libraryPath = PHPExcel_Settings::getChartRendererPath();$includePath = str_replace('\\','/',get_include_path());$rendererPath = str_replace('\\','/',$libraryPath);if (strpos($rendererPath,$includePath) === false) {set_include_path(get_include_path() . PATH_SEPARATOR . $libraryPath);}$rendererName = 'PHPExcel_Chart_Renderer_'.$libraryName;$renderer = new $rendererName($this);if ($outputDestination == 'php://output') {$outputDestination = null;}return $renderer->render($outputDestination);}}