diff --git a/Writer/Parser.php b/Writer/Parser.php
index 6d72d83..2b2faf0 100644
--- a/Writer/Parser.php
+++ b/Writer/Parser.php
@@ -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))
diff --git a/Writer/Workbook.php b/Writer/Workbook.php
index 1115ada..257a955 100644
--- a/Writer/Workbook.php
+++ b/Writer/Workbook.php
@@ -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 = new OLE_PPS_File(OLE::Asc2Ucs('Book'));
+ $OLE->append($this->_data);
+ foreach ($this->_worksheets as $sheet)
{
- $OLE->writeHeader();
- $OLE->write($this->_data);
- foreach($this->_worksheets as $sheet)
- {
- while ($tmp = $sheet->getData()) {
- $OLE->write($tmp);
- }
+ while ($tmp = $sheet->getData()) {
+ $OLE->append($tmp);
}
}
- $OLE->close();
+ $root = new OLE_PPS_Root(time(), time(), array($OLE));
+ $res = $root->save($this->_filename);
+ if ($this->isError($res)) {
+ die("OLE Error: ".$res->getMessage());
+ }
}
/**
diff --git a/package.xml b/package.xml
index d9a14e1..596f7d9 100644
--- a/package.xml
+++ b/package.xml
@@ -25,7 +25,7 @@
- 0.2
+ 0.3
2003-03-17
-added several formatting methods: setTextRotation(), setStrikeOut(),
@@ -50,6 +50,9 @@
+
+ OLE
+