New file |
0,0 → 1,551 |
<?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); |
} |
|
} |