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:
Xavier Noguer Gallego 2003-04-28 23:29:32 +00:00
parent de1cb768ec
commit f1d0697e90
1 changed files with 20 additions and 10 deletions

View File

@ -538,7 +538,12 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
return($this->_convertRef2d($token));
}
// match external references like Sheet1!A1
elseif(preg_match("/^([A-Za-z0-9_]+\![A-I]?[A-Z])(\d+)$/",$token))
elseif (preg_match("/^([A-Za-z0-9_]+\![A-I]?[A-Z])(\d+)$/",$token))
{
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));
}
@ -553,7 +558,12 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
return($this->_convertRange2d($token));
}
// match external ranges like Sheet1!A1:B2
elseif(preg_match("/^([A-Za-z0-9_]+\![A-I]?[A-Z])(\d+)\:([A-I]?[A-Z])(\d+)$/",$token))
elseif (preg_match("/^([A-Za-z0-9_]+\![A-I]?[A-Z])(\d+)\:([A-I]?[A-Z])(\d+)$/",$token))
{
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));
}
@ -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();