Merge remote-tracking branch 'origin/experimental' into develop

This commit is contained in:
Dominik Bonsch 2013-02-09 12:32:03 +01:00
commit 4e8dea7883
5 changed files with 668 additions and 650 deletions

View File

@ -227,7 +227,9 @@ class PHPExcel
public function addSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = NULL) public function addSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = NULL)
{ {
if ($this->sheetNameExists($pSheet->getTitle())) { if ($this->sheetNameExists($pSheet->getTitle())) {
throw new PHPExcel_Exception("Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename this worksheet first."); throw new PHPExcel_Exception(
"Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename this worksheet first."
);
} }
if($iSheetIndex === NULL) { if($iSheetIndex === NULL) {
@ -260,8 +262,13 @@ class PHPExcel
*/ */
public function removeSheetByIndex($pIndex = 0) public function removeSheetByIndex($pIndex = 0)
{ {
if ($pIndex > count($this->_workSheetCollection) - 1) {
throw new PHPExcel_Exception("Sheet index is out of bounds."); $numSheets = count($this->_workSheetCollection);
if ($pIndex > $numSheets - 1) {
throw new PHPExcel_Exception(
"You tried to remove a sheet by the out of bounds index: {$pIndex}. The actual number of sheets is {$numSheets}."
);
} else { } else {
array_splice($this->_workSheetCollection, $pIndex, 1); array_splice($this->_workSheetCollection, $pIndex, 1);
} }
@ -282,8 +289,13 @@ class PHPExcel
*/ */
public function getSheet($pIndex = 0) public function getSheet($pIndex = 0)
{ {
if ($pIndex > count($this->_workSheetCollection) - 1) {
throw new PHPExcel_Exception("Sheet index is out of bounds."); $numSheets = count($this->_workSheetCollection);
if ($pIndex > $numSheets - 1) {
throw new PHPExcel_Exception(
"Your requested sheet index: {$pIndex} is out of bounds. The actual number of sheets is {$numSheets}."
);
} else { } else {
return $this->_workSheetCollection[$pIndex]; return $this->_workSheetCollection[$pIndex];
} }
@ -389,8 +401,12 @@ class PHPExcel
*/ */
public function setActiveSheetIndex($pIndex = 0) public function setActiveSheetIndex($pIndex = 0)
{ {
if ($pIndex > count($this->_workSheetCollection) - 1) { $numSheets = count($this->_workSheetCollection);
throw new PHPExcel_Exception("Active sheet index is out of bounds.");
if ($pIndex > $numSheets - 1) {
throw new PHPExcel_Exception(
"You tried to set a sheet active by the out of bounds index: {$pIndex}. The actual number of sheets is {$numSheets}."
);
} else { } else {
$this->_activeSheetIndex = $pIndex; $this->_activeSheetIndex = $pIndex;
} }

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

@ -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;
} }