fixing formula tokenizer bug (tokenizing as number instead of sheet name) (JT Hughes)
git-svn-id: https://svn.php.net/repository/pear/packages/Spreadsheet_Excel_Writer/trunk@124983 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
5c3887a0a2
commit
43f1993e60
|
|
@ -1086,10 +1086,11 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
|
|||
{
|
||||
return($token);
|
||||
}
|
||||
// If it's a number
|
||||
elseif(is_numeric($token) and !is_numeric($token.$this->_lookahead))
|
||||
// If it's a number (check that it's not a sheet name)
|
||||
elseif (is_numeric($token) and !is_numeric($token.$this->_lookahead) and
|
||||
($this->_lookahead != '!'))
|
||||
{
|
||||
return($token);
|
||||
return $token;
|
||||
}
|
||||
// If it's a string (of maximum 255 characters)
|
||||
elseif(ereg("^\"[^\"]{0,255}\"$",$token))
|
||||
|
|
|
|||
|
|
@ -33,10 +33,13 @@
|
|||
*/
|
||||
|
||||
require_once('Spreadsheet/Excel/Writer/Format.php');
|
||||
require_once('Spreadsheet/Excel/Writer/OLEwriter.php');
|
||||
//require_once('Spreadsheet/Excel/Writer/OLEwriter.php');
|
||||
require_once('Spreadsheet/Excel/Writer/BIFFwriter.php');
|
||||
require_once('Spreadsheet/Excel/Writer/Worksheet.php');
|
||||
require_once('Spreadsheet/Excel/Writer/Parser.php');
|
||||
require_once('OLE/PPS/Root.php');
|
||||
require_once('OLE/PPS/File.php');
|
||||
|
||||
|
||||
/**
|
||||
* Class for generating Excel Spreadsheets
|
||||
|
|
@ -430,28 +433,25 @@ class Spreadsheet_Excel_Writer_Workbook extends Spreadsheet_Excel_Writer_BIFFwri
|
|||
}
|
||||
|
||||
/**
|
||||
* Store the workbook in an OLE container if the total size of the workbook data
|
||||
* is less than ~ 7MB.
|
||||
* Store the workbook in an OLE container
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
function _storeOLEFile()
|
||||
{
|
||||
$OLE = new Spreadsheet_Excel_Writer_OLEwriter($this->_filename);
|
||||
$this->_tmp_filename = $OLE->_tmp_filename;
|
||||
// Write Worksheet data if data <~ 7MB
|
||||
if ($OLE->setSize($this->_biffsize))
|
||||
{
|
||||
$OLE->writeHeader();
|
||||
$OLE->write($this->_data);
|
||||
foreach($this->_worksheets as $sheet)
|
||||
$OLE = new OLE_PPS_File(OLE::Asc2Ucs('Book'));
|
||||
$OLE->append($this->_data);
|
||||
foreach ($this->_worksheets as $sheet)
|
||||
{
|
||||
while ($tmp = $sheet->getData()) {
|
||||
$OLE->write($tmp);
|
||||
$OLE->append($tmp);
|
||||
}
|
||||
}
|
||||
$root = new OLE_PPS_Root(time(), time(), array($OLE));
|
||||
$res = $root->save($this->_filename);
|
||||
if ($this->isError($res)) {
|
||||
die("OLE Error: ".$res->getMessage());
|
||||
}
|
||||
$OLE->close();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
</maintainer>
|
||||
</maintainers>
|
||||
<release>
|
||||
<version>0.2</version>
|
||||
<version>0.3</version>
|
||||
<date>2003-03-17</date>
|
||||
<notes>
|
||||
-added several formatting methods: setTextRotation(), setStrikeOut(),
|
||||
|
|
@ -50,6 +50,9 @@
|
|||
</dir>
|
||||
</dir>
|
||||
</filelist>
|
||||
<deps>
|
||||
<dep type="pkg" rel="has">OLE</dep>
|
||||
</deps>
|
||||
</release>
|
||||
<changelog>
|
||||
<release>
|
||||
|
|
|
|||
Loading…
Reference in New Issue