support for sheet ranges (JT Hughes)
git-svn-id: https://svn.php.net/repository/pear/packages/Spreadsheet_Excel_Writer/trunk@125041 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
de1cb768ec
commit
f1d0697e90
|
|
@ -542,6 +542,11 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
{
|
||||
return($this->_convertRef3d($token));
|
||||
}
|
||||
// match external references like Sheet1:Sheet2!A1
|
||||
elseif (preg_match("/^([A-Za-z0-9_]+\:[A-Za-z0-9_]+\![A-I]?[A-Z])(\d+)$/",$token))
|
||||
{
|
||||
return($this->_convertRef3d($token));
|
||||
}
|
||||
// match ranges like A1:B2
|
||||
elseif(preg_match("/^(\$)?[A-I]?[A-Z](\$)?(\d+)\:(\$)?[A-I]?[A-Z](\$)?(\d+)$/",$token))
|
||||
{
|
||||
|
|
@ -557,6 +562,11 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
{
|
||||
return($this->_convertRange3d($token));
|
||||
}
|
||||
// match external ranges like Sheet1:Sheet2!A1:B2
|
||||
elseif (preg_match("/^([A-Za-z0-9_]+\:[A-Za-z0-9_]+\![A-I]?[A-Z])(\d+)\:([A-I]?[A-Z])(\d+)$/",$token))
|
||||
{
|
||||
return($this->_convertRange3d($token));
|
||||
}
|
||||
elseif(isset($this->ptg[$token])) // operators (including parentheses)
|
||||
{
|
||||
return(pack("C", $this->ptg[$token]));
|
||||
|
|
@ -1062,8 +1072,8 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
{
|
||||
return $token;
|
||||
}
|
||||
// If it's an external reference (Sheet1!A1)
|
||||
elseif(eregi("^[A-Za-z0-9_]+\![A-I]?[A-Z][0-9]+$",$token) and
|
||||
// If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
|
||||
elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-I]?[A-Z][0-9]+$/",$token) and
|
||||
!ereg("[0-9]",$this->_lookahead) and
|
||||
($this->_lookahead != ':') and ($this->_lookahead != '.'))
|
||||
{
|
||||
|
|
@ -1081,11 +1091,11 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
{
|
||||
return $token;
|
||||
}
|
||||
// If it's a external range
|
||||
elseif(eregi("^[A-Za-z0-9_]+\![A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$token) and
|
||||
// If it's an external range
|
||||
elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/",$token) and
|
||||
!ereg("[0-9]",$this->_lookahead))
|
||||
{
|
||||
return($token);
|
||||
return $token;
|
||||
}
|
||||
// If it's a number (check that it's not a sheet name)
|
||||
elseif (is_numeric($token) and !is_numeric($token.$this->_lookahead) and
|
||||
|
|
@ -1321,8 +1331,8 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
$this->_advance();
|
||||
return $result;
|
||||
}
|
||||
// If it's an external reference (Sheet1!A1)
|
||||
elseif(eregi("^[A-Za-z0-9_]+\![A-I]?[A-Z][0-9]+$",$this->_current_token))
|
||||
// If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
|
||||
elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-I]?[A-Z][0-9]+$/",$this->_current_token))
|
||||
{
|
||||
$result = $this->_createTree($this->_current_token, '', '');
|
||||
$this->_advance();
|
||||
|
|
@ -1337,7 +1347,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
return $result;
|
||||
}
|
||||
// If it's an external range (Sheet1!A1:B2)
|
||||
elseif(eregi("^[A-Za-z0-9_]+\![A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$",$this->_current_token))
|
||||
elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-I]?[A-Z][0-9]+:[A-I]?[A-Z][0-9]+$/",$this->_current_token))
|
||||
{
|
||||
$result = $this->_current_token;
|
||||
$this->_advance();
|
||||
|
|
|
|||
Loading…
Reference in New Issue