Merge branch 'develop' of https://github.com/PHPOffice/PHPExcel into calcEngine

Conflicts:
	Classes/PHPExcel.php
	Classes/PHPExcel/Worksheet.php
This commit is contained in:
Mark Baker 2013-02-13 09:09:28 +00:00
commit 5451b63cdc
11 changed files with 1496 additions and 1444 deletions

View File

@ -177,6 +177,14 @@ class PHPExcel
return $this->_calculationEngine; return $this->_calculationEngine;
} // function getCellCacheController() } // function getCellCacheController()
/**
* Code to execute when this worksheet is unset()
*
*/
function __destruct() {
$this->disconnectWorksheets();
}
/** /**
* Get properties * Get properties
* *

View File

@ -110,7 +110,7 @@ class PHPExcel_Chart_PlotArea
/** /**
* Set Plot Series * Set Plot Series
* *
* @param array of PHPExcel_Chart_DataSeries * @param [PHPExcel_Chart_DataSeries]
*/ */
public function setPlotSeries($plotSeries = array()) { public function setPlotSeries($plotSeries = array()) {
$this->_plotSeries = $plotSeries; $this->_plotSeries = $plotSeries;

View File

@ -21,7 +21,7 @@
* @category PHPExcel * @category PHPExcel
* @package PHPExcel * @package PHPExcel
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE## * @version ##VERSION##, ##DATE##
*/ */
@ -35,68 +35,68 @@
*/ */
class PHPExcel_Comment implements PHPExcel_IComparable class PHPExcel_Comment implements PHPExcel_IComparable
{ {
/** /**
* Author * Author
* *
* @var string * @var string
*/ */
private $_author; private $_author;
/** /**
* Rich text comment * Rich text comment
* *
* @var PHPExcel_RichText * @var PHPExcel_RichText
*/ */
private $_text; private $_text;
/** /**
* Comment width (CSS style, i.e. XXpx or YYpt) * Comment width (CSS style, i.e. XXpx or YYpt)
* *
* @var string * @var string
*/ */
private $_width = '96pt'; private $_width = '96pt';
/** /**
* Left margin (CSS style, i.e. XXpx or YYpt) * Left margin (CSS style, i.e. XXpx or YYpt)
* *
* @var string * @var string
*/ */
private $_marginLeft = '59.25pt'; private $_marginLeft = '59.25pt';
/** /**
* Top margin (CSS style, i.e. XXpx or YYpt) * Top margin (CSS style, i.e. XXpx or YYpt)
* *
* @var string * @var string
*/ */
private $_marginTop = '1.5pt'; private $_marginTop = '1.5pt';
/** /**
* Visible * Visible
* *
* @var boolean * @var boolean
*/ */
private $_visible = false; private $_visible = false;
/** /**
* Comment height (CSS style, i.e. XXpx or YYpt) * Comment height (CSS style, i.e. XXpx or YYpt)
* *
* @var string * @var string
*/ */
private $_height = '55.5pt'; private $_height = '55.5pt';
/** /**
* Comment fill color * Comment fill color
* *
* @var PHPExcel_Style_Color * @var PHPExcel_Style_Color
*/ */
private $_fillColor; private $_fillColor;
/** /**
* Alignment * Alignment
* *
* @var string * @var string
*/ */
private $_alignment; private $_alignment;
/** /**
* Create a new PHPExcel_Comment * Create a new PHPExcel_Comment
@ -105,11 +105,11 @@ class PHPExcel_Comment implements PHPExcel_IComparable
*/ */
public function __construct() public function __construct()
{ {
// Initialise variables // Initialise variables
$this->_author = 'Author'; $this->_author = 'Author';
$this->_text = new PHPExcel_RichText(); $this->_text = new PHPExcel_RichText();
$this->_fillColor = new PHPExcel_Style_Color('FFFFFFE1'); $this->_fillColor = new PHPExcel_Style_Color('FFFFFFE1');
$this->_alignment = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; $this->_alignment = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL;
} }
/** /**
@ -118,7 +118,7 @@ class PHPExcel_Comment implements PHPExcel_IComparable
* @return string * @return string
*/ */
public function getAuthor() { public function getAuthor() {
return $this->_author; return $this->_author;
} }
/** /**
@ -127,10 +127,10 @@ class PHPExcel_Comment implements PHPExcel_IComparable
* @param string $pValue * @param string $pValue
* @return PHPExcel_Comment * @return PHPExcel_Comment
*/ */
public function setAuthor($pValue = '') { public function setAuthor($pValue = '') {
$this->_author = $pValue; $this->_author = $pValue;
return $this; return $this;
} }
/** /**
* Get Rich text comment * Get Rich text comment
@ -138,7 +138,7 @@ class PHPExcel_Comment implements PHPExcel_IComparable
* @return PHPExcel_RichText * @return PHPExcel_RichText
*/ */
public function getText() { public function getText() {
return $this->_text; return $this->_text;
} }
/** /**
@ -148,8 +148,8 @@ class PHPExcel_Comment implements PHPExcel_IComparable
* @return PHPExcel_Comment * @return PHPExcel_Comment
*/ */
public function setText(PHPExcel_RichText $pValue) { public function setText(PHPExcel_RichText $pValue) {
$this->_text = $pValue; $this->_text = $pValue;
return $this; return $this;
} }
/** /**
@ -268,8 +268,8 @@ class PHPExcel_Comment implements PHPExcel_IComparable
* @return PHPExcel_Comment * @return PHPExcel_Comment
*/ */
public function setAlignment($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) { public function setAlignment($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) {
$this->_alignment = $pValue; $this->_alignment = $pValue;
return $this; return $this;
} }
/** /**
@ -278,40 +278,40 @@ class PHPExcel_Comment implements PHPExcel_IComparable
* @return string * @return string
*/ */
public function getAlignment() { public function getAlignment() {
return $this->_alignment; return $this->_alignment;
} }
/** /**
* Get hash code * Get hash code
* *
* @return string Hash code * @return string Hash code
*/ */
public function getHashCode() { public function getHashCode() {
return md5( return md5(
$this->_author $this->_author
. $this->_text->getHashCode() . $this->_text->getHashCode()
. $this->_width . $this->_width
. $this->_height . $this->_height
. $this->_marginLeft . $this->_marginLeft
. $this->_marginTop . $this->_marginTop
. ($this->_visible ? 1 : 0) . ($this->_visible ? 1 : 0)
. $this->_fillColor->getHashCode() . $this->_fillColor->getHashCode()
. $this->_alignment . $this->_alignment
. __CLASS__ . __CLASS__
); );
} }
/** /**
* Implement PHP __clone to create a deep clone, not just a shallow copy. * Implement PHP __clone to create a deep clone, not just a shallow copy.
*/ */
public function __clone() { public function __clone() {
$vars = get_object_vars($this); $vars = get_object_vars($this);
foreach ($vars as $key => $value) { foreach ($vars as $key => $value) {
if (is_object($value)) { if (is_object($value)) {
$this->$key = clone $value; $this->$key = clone $value;
} else { } else {
$this->$key = $value; $this->$key = $value;
} }
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -21,8 +21,8 @@
* @category PHPExcel * @category PHPExcel
* @package PHPExcel * @package PHPExcel
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE## * @version ##VERSION##, ##DATE##
*/ */
@ -34,19 +34,19 @@
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
*/ */
class PHPExcel_Exception extends Exception { class PHPExcel_Exception extends Exception {
/** /**
* Error handler callback * Error handler callback
* *
* @param mixed $code * @param mixed $code
* @param mixed $string * @param mixed $string
* @param mixed $file * @param mixed $file
* @param mixed $line * @param mixed $line
* @param mixed $context * @param mixed $context
*/ */
public static function errorHandlerCallback($code, $string, $file, $line, $context) { public static function errorHandlerCallback($code, $string, $file, $line, $context) {
$e = new self($string, $code); $e = new self($string, $code);
$e->line = $line; $e->line = $line;
$e->file = $file; $e->file = $file;
throw $e; throw $e;
} }
} }

View File

@ -21,7 +21,7 @@
* @category PHPExcel * @category PHPExcel
* @package PHPExcel_RichText * @package PHPExcel_RichText
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE## * @version ##VERSION##, ##DATE##
*/ */
@ -35,77 +35,77 @@
*/ */
class PHPExcel_RichText implements PHPExcel_IComparable class PHPExcel_RichText implements PHPExcel_IComparable
{ {
/** /**
* Rich text elements * Rich text elements
* *
* @var PHPExcel_RichText_ITextElement[] * @var PHPExcel_RichText_ITextElement[]
*/ */
private $_richTextElements; private $_richTextElements;
/** /**
* Create a new PHPExcel_RichText instance * Create a new PHPExcel_RichText instance
* *
* @param PHPExcel_Cell $pParent * @param PHPExcel_Cell $pParent
* @throws PHPExcel_Exception * @throws PHPExcel_Exception
*/ */
public function __construct(PHPExcel_Cell $pCell = null) public function __construct(PHPExcel_Cell $pCell = null)
{ {
// Initialise variables // Initialise variables
$this->_richTextElements = array(); $this->_richTextElements = array();
// Rich-Text string attached to cell? // Rich-Text string attached to cell?
if ($pCell !== NULL) { if ($pCell !== NULL) {
// Add cell text and style // Add cell text and style
if ($pCell->getValue() != "") { if ($pCell->getValue() != "") {
$objRun = new PHPExcel_RichText_Run($pCell->getValue()); $objRun = new PHPExcel_RichText_Run($pCell->getValue());
$objRun->setFont(clone $pCell->getParent()->getStyle($pCell->getCoordinate())->getFont()); $objRun->setFont(clone $pCell->getParent()->getStyle($pCell->getCoordinate())->getFont());
$this->addText($objRun); $this->addText($objRun);
} }
// Set parent value // Set parent value
$pCell->setValueExplicit($this, PHPExcel_Cell_DataType::TYPE_STRING); $pCell->setValueExplicit($this, PHPExcel_Cell_DataType::TYPE_STRING);
} }
} }
/** /**
* Add text * Add text
* *
* @param PHPExcel_RichText_ITextElement $pText Rich text element * @param PHPExcel_RichText_ITextElement $pText Rich text element
* @throws PHPExcel_Exception * @throws PHPExcel_Exception
* @return PHPExcel_RichText * @return PHPExcel_RichText
*/ */
public function addText(PHPExcel_RichText_ITextElement $pText = null) public function addText(PHPExcel_RichText_ITextElement $pText = null)
{ {
$this->_richTextElements[] = $pText; $this->_richTextElements[] = $pText;
return $this; return $this;
} }
/** /**
* Create text * Create text
* *
* @param string $pText Text * @param string $pText Text
* @return PHPExcel_RichText_TextElement * @return PHPExcel_RichText_TextElement
* @throws PHPExcel_Exception * @throws PHPExcel_Exception
*/ */
public function createText($pText = '') public function createText($pText = '')
{ {
$objText = new PHPExcel_RichText_TextElement($pText); $objText = new PHPExcel_RichText_TextElement($pText);
$this->addText($objText); $this->addText($objText);
return $objText; return $objText;
} }
/** /**
* Create text run * Create text run
* *
* @param string $pText Text * @param string $pText Text
* @return PHPExcel_RichText_Run * @return PHPExcel_RichText_Run
* @throws PHPExcel_Exception * @throws PHPExcel_Exception
*/ */
public function createTextRun($pText = '') public function createTextRun($pText = '')
{ {
$objText = new PHPExcel_RichText_Run($pText); $objText = new PHPExcel_RichText_Run($pText);
$this->addText($objText); $this->addText($objText);
return $objText; return $objText;
} }
/** /**
@ -115,16 +115,16 @@ class PHPExcel_RichText implements PHPExcel_IComparable
*/ */
public function getPlainText() public function getPlainText()
{ {
// Return value // Return value
$returnValue = ''; $returnValue = '';
// Loop through all PHPExcel_RichText_ITextElement // Loop through all PHPExcel_RichText_ITextElement
foreach ($this->_richTextElements as $text) { foreach ($this->_richTextElements as $text) {
$returnValue .= $text->getText(); $returnValue .= $text->getText();
} }
// Return // Return
return $returnValue; return $returnValue;
} }
/** /**
@ -132,8 +132,9 @@ class PHPExcel_RichText implements PHPExcel_IComparable
* *
* @return string * @return string
*/ */
public function __toString() { public function __toString()
return $this->getPlainText(); {
return $this->getPlainText();
} }
/** /**
@ -143,54 +144,56 @@ class PHPExcel_RichText implements PHPExcel_IComparable
*/ */
public function getRichTextElements() public function getRichTextElements()
{ {
return $this->_richTextElements; return $this->_richTextElements;
} }
/** /**
* Set Rich Text elements * Set Rich Text elements
* *
* @param PHPExcel_RichText_ITextElement[] $pElements Array of elements * @param PHPExcel_RichText_ITextElement[] $pElements Array of elements
* @throws PHPExcel_Exception * @throws PHPExcel_Exception
* @return PHPExcel_RichText * @return PHPExcel_RichText
*/ */
public function setRichTextElements($pElements = null) public function setRichTextElements($pElements = null)
{ {
if (is_array($pElements)) { if (is_array($pElements)) {
$this->_richTextElements = $pElements; $this->_richTextElements = $pElements;
} else { } else {
throw new PHPExcel_Exception("Invalid PHPExcel_RichText_ITextElement[] array passed."); throw new PHPExcel_Exception("Invalid PHPExcel_RichText_ITextElement[] array passed.");
} }
return $this; return $this;
} }
/** /**
* Get hash code * Get hash code
* *
* @return string Hash code * @return string Hash code
*/ */
public function getHashCode() { public function getHashCode()
$hashElements = ''; {
foreach ($this->_richTextElements as $element) { $hashElements = '';
$hashElements .= $element->getHashCode(); foreach ($this->_richTextElements as $element) {
} $hashElements .= $element->getHashCode();
}
return md5( return md5(
$hashElements $hashElements
. __CLASS__ . __CLASS__
); );
} }
/** /**
* Implement PHP __clone to create a deep clone, not just a shallow copy. * Implement PHP __clone to create a deep clone, not just a shallow copy.
*/ */
public function __clone() { public function __clone()
$vars = get_object_vars($this); {
foreach ($vars as $key => $value) { $vars = get_object_vars($this);
if (is_object($value)) { foreach ($vars as $key => $value) {
$this->$key = clone $value; if (is_object($value)) {
} else { $this->$key = clone $value;
$this->$key = $value; } else {
} $this->$key = $value;
} }
} }
}
} }

View File

@ -21,312 +21,334 @@
* @category PHPExcel * @category PHPExcel
* @package PHPExcel_Settings * @package PHPExcel_Settings
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE## * @version ##VERSION##, ##DATE##
*/ */
/** PHPExcel root directory */ /** PHPExcel root directory */
if (!defined('PHPEXCEL_ROOT')) { if (!defined('PHPEXCEL_ROOT')) {
/** /**
* @ignore * @ignore
*/ */
define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../'); define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');
require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
} }
class PHPExcel_Settings class PHPExcel_Settings
{ {
/** constants */ /** constants */
/** Available Zip library classes */ /** Available Zip library classes */
const PCLZIP = 'PHPExcel_Shared_ZipArchive'; const PCLZIP = 'PHPExcel_Shared_ZipArchive';
const ZIPARCHIVE = 'ZipArchive'; const ZIPARCHIVE = 'ZipArchive';
/** Optional Chart Rendering libraries */ /** Optional Chart Rendering libraries */
const CHART_RENDERER_JPGRAPH = 'jpgraph'; const CHART_RENDERER_JPGRAPH = 'jpgraph';
/** Optional PDF Rendering libraries */ /** Optional PDF Rendering libraries */
const PDF_RENDERER_TCPDF = 'tcPDF'; const PDF_RENDERER_TCPDF = 'tcPDF';
const PDF_RENDERER_DOMPDF = 'DomPDF'; const PDF_RENDERER_DOMPDF = 'DomPDF';
const PDF_RENDERER_MPDF = 'mPDF'; const PDF_RENDERER_MPDF = 'mPDF';
private static $_chartRenderers = array( private static $_chartRenderers = array(
self::CHART_RENDERER_JPGRAPH, self::CHART_RENDERER_JPGRAPH,
); );
private static $_pdfRenderers = array( private static $_pdfRenderers = array(
self::PDF_RENDERER_TCPDF, self::PDF_RENDERER_TCPDF,
self::PDF_RENDERER_DOMPDF, self::PDF_RENDERER_DOMPDF,
self::PDF_RENDERER_MPDF, self::PDF_RENDERER_MPDF,
); );
/** /**
* Name of the class used for Zip file management * Name of the class used for Zip file management
* e.g. * e.g.
* ZipArchive * ZipArchive
* *
* @var string * @var string
*/ */
private static $_zipClass = self::ZIPARCHIVE; private static $_zipClass = self::ZIPARCHIVE;
/** /**
* Name of the external Library used for rendering charts * Name of the external Library used for rendering charts
* e.g. * e.g.
* jpgraph * jpgraph
* *
* @var string * @var string
*/ */
private static $_chartRendererName = NULL; private static $_chartRendererName = NULL;
/** /**
* Directory Path to the external Library used for rendering charts * Directory Path to the external Library used for rendering charts
* *
* @var string * @var string
*/ */
private static $_chartRendererPath = NULL; private static $_chartRendererPath = NULL;
/** /**
* Name of the external Library used for rendering PDF files * Name of the external Library used for rendering PDF files
* e.g. * e.g.
* mPDF * mPDF
* *
* @var string * @var string
*/ */
private static $_pdfRendererName = NULL; private static $_pdfRendererName = NULL;
/** /**
* Directory Path to the external Library used for rendering PDF files * Directory Path to the external Library used for rendering PDF files
* *
* @var string * @var string
*/ */
private static $_pdfRendererPath = NULL; private static $_pdfRendererPath = NULL;
/** /**
* Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive) * Set the Zip handler Class that PHPExcel should use for Zip file management (PCLZip or ZipArchive)
* *
* @param string $zipClass The Zip handler class that PHPExcel should use for Zip file management * @param string $zipClass The Zip handler class that PHPExcel should use for Zip file management
* e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive * e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive
* @return boolean Success or failure * @return boolean Success or failure
*/ */
public static function setZipClass($zipClass) { public static function setZipClass($zipClass)
if (($zipClass === self::PCLZIP) || {
($zipClass === self::ZIPARCHIVE)) { if (($zipClass === self::PCLZIP) ||
self::$_zipClass = $zipClass; ($zipClass === self::ZIPARCHIVE)) {
return TRUE; self::$_zipClass = $zipClass;
} return TRUE;
return FALSE; }
} // function setZipClass() return FALSE;
} // function setZipClass()
/** /**
* Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive) * Return the name of the Zip handler Class that PHPExcel is configured to use (PCLZip or ZipArchive)
* for Zip file management * or Zip file management
* *
* @return string Name of the Zip handler Class that PHPExcel is configured to use * @return string Name of the Zip handler Class that PHPExcel is configured to use
* for Zip file management * for Zip file management
* e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive * e.g. PHPExcel_Settings::PCLZip or PHPExcel_Settings::ZipArchive
*/ */
public static function getZipClass() { public static function getZipClass()
return self::$_zipClass; {
} // function getZipClass() return self::$_zipClass;
} // function getZipClass()
/** /**
* Return the name of the method that is currently configured for cell cacheing * Return the name of the method that is currently configured for cell cacheing
* *
* @return string Name of the cacheing method * @return string Name of the cacheing method
*/ */
public static function getCacheStorageMethod() { public static function getCacheStorageMethod()
return PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod(); {
} // function getCacheStorageMethod() return PHPExcel_CachedObjectStorageFactory::getCacheStorageMethod();
} // function getCacheStorageMethod()
/** /**
* Return the name of the class that is currently being used for cell cacheing * Return the name of the class that is currently being used for cell cacheing
* *
* @return string Name of the class currently being used for cacheing * @return string Name of the class currently being used for cacheing
*/ */
public static function getCacheStorageClass() { public static function getCacheStorageClass()
return PHPExcel_CachedObjectStorageFactory::getCacheStorageClass(); {
} // function getCacheStorageClass() return PHPExcel_CachedObjectStorageFactory::getCacheStorageClass();
} // function getCacheStorageClass()
/** /**
* Set the method that should be used for cell cacheing * Set the method that should be used for cell cacheing
* *
* @param string $method Name of the cacheing method * @param string $method Name of the cacheing method
* @param array $arguments Optional configuration arguments for the cacheing method * @param array $arguments Optional configuration arguments for the cacheing method
* @return boolean Success or failure * @return boolean Success or failure
*/ */
public static function setCacheStorageMethod($method = PHPExcel_CachedObjectStorageFactory::cache_in_memory, public static function setCacheStorageMethod(
$arguments = array()) { $method = PHPExcel_CachedObjectStorageFactory::cache_in_memory,
return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments); $arguments = array()
} // function setCacheStorageMethod() )
{
return PHPExcel_CachedObjectStorageFactory::initialize($method, $arguments);
} // function setCacheStorageMethod()
/** /**
* Set the locale code to use for formula translations and any special formatting * Set the locale code to use for formula translations and any special formatting
* *
* @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk") * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk")
* @return boolean Success or failure * @return boolean Success or failure
*/ */
public static function setLocale($locale='en_us') { public static function setLocale($locale='en_us')
return PHPExcel_Calculation::getInstance()->setLocale($locale); {
} // function setLocale() return PHPExcel_Calculation::getInstance()->setLocale($locale);
} // function setLocale()
/** /**
* Set details of the external library that PHPExcel should use for rendering charts * Set details of the external library that PHPExcel should use for rendering charts
* *
* @param string $libraryName Internal reference name of the library * @param string $libraryName Internal reference name of the library
* e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
* @param string $libraryBaseDir Directory path to the library's base folder * @param string $libraryBaseDir Directory path to the library's base folder
* @return boolean Success or failure *
*/ * @return boolean Success or failure
public static function setChartRenderer($libraryName, $libraryBaseDir) { */
if (!self::setChartRendererName($libraryName)) public static function setChartRenderer($libraryName, $libraryBaseDir)
return FALSE; {
return self::setChartRendererPath($libraryBaseDir); if (!self::setChartRendererName($libraryName))
} // function setChartRenderer() return FALSE;
return self::setChartRendererPath($libraryBaseDir);
} // function setChartRenderer()
/** /**
* Identify to PHPExcel the external library to use for rendering charts * Identify to PHPExcel the external library to use for rendering charts
* *
* @param string $libraryName Internal reference name of the library * @param string $libraryName Internal reference name of the library
* e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
* @return boolean Success or failure *
*/ * @return boolean Success or failure
public static function setChartRendererName($libraryName) { */
if (!in_array($libraryName,self::$_chartRenderers)) { public static function setChartRendererName($libraryName)
return FALSE; {
} if (!in_array($libraryName,self::$_chartRenderers)) {
return FALSE;
}
self::$_chartRendererName = $libraryName; self::$_chartRendererName = $libraryName;
return TRUE; return TRUE;
} // function setChartRendererName() } // function setChartRendererName()
/** /**
* Tell PHPExcel where to find the external library to use for rendering charts * Tell PHPExcel where to find the external library to use for rendering charts
* *
* @param string $libraryBaseDir Directory path to the library's base folder * @param string $libraryBaseDir Directory path to the library's base folder
* @return boolean Success or failure * @return boolean Success or failure
*/ */
public static function setChartRendererPath($libraryBaseDir) { public static function setChartRendererPath($libraryBaseDir)
if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { {
return FALSE; if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {
} return FALSE;
self::$_chartRendererPath = $libraryBaseDir; }
self::$_chartRendererPath = $libraryBaseDir;
return TRUE; return TRUE;
} // function setChartRendererPath() } // function setChartRendererPath()
/** /**
* Return the Chart Rendering Library that PHPExcel is currently configured to use (e.g. jpgraph) * Return the Chart Rendering Library that PHPExcel is currently configured to use (e.g. jpgraph)
* *
* @return string|NULL Internal reference name of the Chart Rendering Library that PHPExcel is * @return string|NULL Internal reference name of the Chart Rendering Library that PHPExcel is
* currently configured to use * currently configured to use
* e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH * e.g. PHPExcel_Settings::CHART_RENDERER_JPGRAPH
*/ */
public static function getChartRendererName() { public static function getChartRendererName()
return self::$_chartRendererName; {
} // function getChartRendererName() return self::$_chartRendererName;
} // function getChartRendererName()
/** /**
* Return the directory path to the Chart Rendering Library that PHPExcel is currently configured to use * Return the directory path to the Chart Rendering Library that PHPExcel is currently configured to use
* *
* @return string|NULL Directory Path to the Chart Rendering Library that PHPExcel is * @return string|NULL Directory Path to the Chart Rendering Library that PHPExcel is
* currently configured to use * currently configured to use
*/ */
public static function getChartRendererPath() { public static function getChartRendererPath()
return self::$_chartRendererPath; {
} // function getChartRendererPath() return self::$_chartRendererPath;
} // function getChartRendererPath()
/** /**
* Set details of the external library that PHPExcel should use for rendering PDF files * Set details of the external library that PHPExcel should use for rendering PDF files
* *
* @param string $libraryName Internal reference name of the library * @param string $libraryName Internal reference name of the library
* e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
* PHPExcel_Settings::PDF_RENDERER_DOMPDF * PHPExcel_Settings::PDF_RENDERER_DOMPDF
* or PHPExcel_Settings::PDF_RENDERER_MPDF * or PHPExcel_Settings::PDF_RENDERER_MPDF
* @param string $libraryBaseDir Directory path to the library's base folder * @param string $libraryBaseDir Directory path to the library's base folder
* @return boolean Success or failure *
*/ * @return boolean Success or failure
public static function setPdfRenderer($libraryName, $libraryBaseDir) { */
if (!self::setPdfRendererName($libraryName)) public static function setPdfRenderer($libraryName, $libraryBaseDir)
return FALSE; {
return self::setPdfRendererPath($libraryBaseDir); if (!self::setPdfRendererName($libraryName))
} // function setPdfRenderer() return FALSE;
return self::setPdfRendererPath($libraryBaseDir);
} // function setPdfRenderer()
/** /**
* Identify to PHPExcel the external library to use for rendering PDF files * Identify to PHPExcel the external library to use for rendering PDF files
* *
* @param string $libraryName Internal reference name of the library * @param string $libraryName Internal reference name of the library
* e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
* PHPExcel_Settings::PDF_RENDERER_DOMPDF * PHPExcel_Settings::PDF_RENDERER_DOMPDF
* or PHPExcel_Settings::PDF_RENDERER_MPDF * or PHPExcel_Settings::PDF_RENDERER_MPDF
* @return boolean Success or failure *
*/ * @return boolean Success or failure
public static function setPdfRendererName($libraryName) { */
if (!in_array($libraryName,self::$_pdfRenderers)) { public static function setPdfRendererName($libraryName)
return FALSE; {
} if (!in_array($libraryName,self::$_pdfRenderers)) {
return FALSE;
}
self::$_pdfRendererName = $libraryName; self::$_pdfRendererName = $libraryName;
return TRUE; return TRUE;
} // function setPdfRendererName() } // function setPdfRendererName()
/** /**
* Tell PHPExcel where to find the external library to use for rendering PDF files * Tell PHPExcel where to find the external library to use for rendering PDF files
* *
* @param string $libraryBaseDir Directory path to the library's base folder * @param string $libraryBaseDir Directory path to the library's base folder
* @return boolean Success or failure * @return boolean Success or failure
*/ */
public static function setPdfRendererPath($libraryBaseDir) { public static function setPdfRendererPath($libraryBaseDir)
if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) { {
return FALSE; if ((file_exists($libraryBaseDir) === false) || (is_readable($libraryBaseDir) === false)) {
} return FALSE;
self::$_pdfRendererPath = $libraryBaseDir; }
self::$_pdfRendererPath = $libraryBaseDir;
return TRUE; return TRUE;
} // function setPdfRendererPath() } // function setPdfRendererPath()
/** /**
* Return the PDF Rendering Library that PHPExcel is currently configured to use (e.g. dompdf) * Return the PDF Rendering Library that PHPExcel is currently configured to use (e.g. dompdf)
* *
* @return string|NULL Internal reference name of the PDF Rendering Library that PHPExcel is * @return string|NULL Internal reference name of the PDF Rendering Library that PHPExcel is
* currently configured to use * currently configured to use
* e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF, * e.g. PHPExcel_Settings::PDF_RENDERER_TCPDF,
* PHPExcel_Settings::PDF_RENDERER_DOMPDF * PHPExcel_Settings::PDF_RENDERER_DOMPDF
* or PHPExcel_Settings::PDF_RENDERER_MPDF * or PHPExcel_Settings::PDF_RENDERER_MPDF
*/ */
public static function getPdfRendererName() { public static function getPdfRendererName()
return self::$_pdfRendererName; {
} // function getPdfRendererName() return self::$_pdfRendererName;
} // function getPdfRendererName()
/** /**
* Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use * Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use
* *
* @return string|NULL Directory Path to the PDF Rendering Library that PHPExcel is * @return string|NULL Directory Path to the PDF Rendering Library that PHPExcel is
* currently configured to use * currently configured to use
*/ */
public static function getPdfRendererPath() { public static function getPdfRendererPath()
return self::$_pdfRendererPath; {
} // function getPdfRendererPath() return self::$_pdfRendererPath;
} // function getPdfRendererPath()
} }

View File

@ -252,19 +252,22 @@ class PHPExcel_Shared_OLERead {
$name = str_replace("\x00", "", substr($d,0,$nameSize)); $name = str_replace("\x00", "", substr($d,0,$nameSize));
$this->props[] = array ( $this->props[] = array (
'name' => $name, 'name' => $name,
'type' => $type, 'type' => $type,
'startBlock' => $startBlock, 'startBlock' => $startBlock,
'size' => $size); 'size' => $size);
// tmp helper to simplify checks
$upName = strtoupper($name);
// Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook) // Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook)
if (($name == 'Workbook') || ($name == 'Book') || ($name == 'WORKBOOK') || ($name == 'BOOK')) { if (($upName === 'WORKBOOK') || ($upName === 'BOOK')) {
$this->wrkbook = count($this->props) - 1; $this->wrkbook = count($this->props) - 1;
} }
else if ( $upName === 'ROOT ENTRY' || $upName === 'R') {
// Root entry // Root entry
if ($name == 'Root Entry' || $name == 'ROOT ENTRY' || $name == 'R') {
$this->rootentry = count($this->props) - 1; $this->rootentry = count($this->props) - 1;
} }

File diff suppressed because it is too large Load Diff

View File

@ -41,7 +41,7 @@ class PHPExcel_Worksheet implements PHPExcel_IComparable
const BREAK_COLUMN = 2; const BREAK_COLUMN = 2;
/* Sheet state */ /* Sheet state */
const SHEETSTATE_VISIBLE = 'visible'; const SHEETSTATE_VISIBLE = 'visible';
const SHEETSTATE_HIDDEN = 'hidden'; const SHEETSTATE_HIDDEN = 'hidden';
const SHEETSTATE_VERYHIDDEN = 'veryHidden'; const SHEETSTATE_VERYHIDDEN = 'veryHidden';

View File

@ -21,7 +21,7 @@
* @category PHPExcel * @category PHPExcel
* @package PHPExcel * @package PHPExcel
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel) * @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE## * @version ##VERSION##, ##DATE##
*/ */
@ -37,41 +37,44 @@
*/ */
class PHPExcel_WorksheetIterator implements Iterator class PHPExcel_WorksheetIterator implements Iterator
{ {
/** /**
* Spreadsheet to iterate * Spreadsheet to iterate
* *
* @var PHPExcel * @var PHPExcel
*/ */
private $_subject; private $_subject;
/** /**
* Current iterator position * Current iterator position
* *
* @var int * @var int
*/ */
private $_position = 0; private $_position = 0;
/** /**
* Create a new worksheet iterator * Create a new worksheet iterator
* *
* @param PHPExcel $subject * @param PHPExcel $subject
*/ */
public function __construct(PHPExcel $subject = null) { public function __construct(PHPExcel $subject = null)
// Set subject {
$this->_subject = $subject; // Set subject
} $this->_subject = $subject;
}
/** /**
* Destructor * Destructor
*/ */
public function __destruct() { public function __destruct()
unset($this->_subject); {
} unset($this->_subject);
}
/** /**
* Rewind iterator * Rewind iterator
*/ */
public function rewind() { public function rewind()
{
$this->_position = 0; $this->_position = 0;
} }
@ -80,8 +83,9 @@ class PHPExcel_WorksheetIterator implements Iterator
* *
* @return PHPExcel_Worksheet * @return PHPExcel_Worksheet
*/ */
public function current() { public function current()
return $this->_subject->getSheet($this->_position); {
return $this->_subject->getSheet($this->_position);
} }
/** /**
@ -89,14 +93,16 @@ class PHPExcel_WorksheetIterator implements Iterator
* *
* @return int * @return int
*/ */
public function key() { public function key()
{
return $this->_position; return $this->_position;
} }
/** /**
* Next value * Next value
*/ */
public function next() { public function next()
{
++$this->_position; ++$this->_position;
} }
@ -105,7 +111,8 @@ class PHPExcel_WorksheetIterator implements Iterator
* *
* @return boolean * @return boolean
*/ */
public function valid() { public function valid()
{
return $this->_position < $this->_subject->getSheetCount(); return $this->_position < $this->_subject->getSheetCount();
} }
} }