parent
							
								
									7d2579b36e
								
							
						
					
					
						commit
						003ee63187
					
				@ -1,104 +0,0 @@ | 
				
			||||
<?php | 
				
			||||
/* | 
				
			||||
*  Module written/ported by Xavier Noguer <xnoguer@rezebra.com> | 
				
			||||
* | 
				
			||||
*  PERL Spreadsheet::WriteExcel module. | 
				
			||||
* | 
				
			||||
*  The author of the Spreadsheet::WriteExcel module is John McNamara | 
				
			||||
*  <jmcnamara@cpan.org> | 
				
			||||
* | 
				
			||||
*  I _DO_ maintain this code, and John McNamara has nothing to do with the | 
				
			||||
*  porting of this code to PHP.  Any questions directly related to this | 
				
			||||
*  class library should be directed to me. | 
				
			||||
* | 
				
			||||
*  License Information: | 
				
			||||
* | 
				
			||||
*    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets | 
				
			||||
*    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com | 
				
			||||
* | 
				
			||||
*    This library is free software; you can redistribute it and/or | 
				
			||||
*    modify it under the terms of the GNU Lesser General Public | 
				
			||||
*    License as published by the Free Software Foundation; either | 
				
			||||
*    version 2.1 of the License, or (at your option) any later version. | 
				
			||||
* | 
				
			||||
*    This library is distributed in the hope that it will be useful, | 
				
			||||
*    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
				
			||||
*    Lesser General Public License for more details. | 
				
			||||
* | 
				
			||||
*    You should have received a copy of the GNU Lesser General Public | 
				
			||||
*    License along with this library; if not, write to the Free Software | 
				
			||||
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
				
			||||
*/ | 
				
			||||
 | 
				
			||||
//require_once(api_get_path(LIBRARY_PATH).'pear/PEAR.php'); | 
				
			||||
require_once 'Writer/Workbook.php'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
* Class for writing Excel Spreadsheets. This class should change COMPLETELY. | 
				
			||||
* | 
				
			||||
* @author   Xavier Noguer <xnoguer@rezebra.com> | 
				
			||||
* @category FileFormats | 
				
			||||
* @package  Spreadsheet_Excel_Writer | 
				
			||||
*/ | 
				
			||||
 | 
				
			||||
class Spreadsheet_Excel_Writer extends Spreadsheet_Excel_Writer_Workbook | 
				
			||||
{ | 
				
			||||
    /** | 
				
			||||
    * The constructor. It just creates a Workbook | 
				
			||||
    * | 
				
			||||
    * @param string $filename The optional filename for the Workbook. | 
				
			||||
    * @return Spreadsheet_Excel_Writer_Workbook The Workbook created | 
				
			||||
    */ | 
				
			||||
    function Spreadsheet_Excel_Writer($filename = '') | 
				
			||||
    { | 
				
			||||
        $this->_filename = $filename; | 
				
			||||
        $this->Spreadsheet_Excel_Writer_Workbook($filename); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Send HTTP headers for the Excel file. | 
				
			||||
    * | 
				
			||||
    * @param string $filename The filename to use for HTTP headers | 
				
			||||
    * @access public | 
				
			||||
    */ | 
				
			||||
    function send($filename) | 
				
			||||
    { | 
				
			||||
        header("Content-type: application/vnd.ms-excel"); | 
				
			||||
        header("Content-Disposition: attachment; filename=\"$filename\""); | 
				
			||||
        header("Expires: 0"); | 
				
			||||
        header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); | 
				
			||||
        header("Pragma: public"); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Utility function for writing formulas | 
				
			||||
    * Converts a cell's coordinates to the A1 format. | 
				
			||||
    * | 
				
			||||
    * @access public | 
				
			||||
    * @static | 
				
			||||
    * @param integer $row Row for the cell to convert (0-indexed). | 
				
			||||
    * @param integer $col Column for the cell to convert (0-indexed). | 
				
			||||
    * @return string The cell identifier in A1 format | 
				
			||||
    */ | 
				
			||||
    function rowcolToCell($row, $col) | 
				
			||||
    { | 
				
			||||
        if ($col > 255) { //maximum column value exceeded | 
				
			||||
            return new PEAR_Error("Maximum column value exceeded: $col"); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        $int = (int)($col / 26); | 
				
			||||
        $frac = $col % 26; | 
				
			||||
        $chr1 = ''; | 
				
			||||
 | 
				
			||||
        if ($int > 0) { | 
				
			||||
            $chr1 = chr(ord('A') + $int - 1); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        $chr2 = chr(ord('A') + $frac); | 
				
			||||
        $row++; | 
				
			||||
 | 
				
			||||
        return $chr1 . $chr2 . $row; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
?> | 
				
			||||
@ -1,261 +0,0 @@ | 
				
			||||
<?php | 
				
			||||
/* | 
				
			||||
*  Module written/ported by Xavier Noguer <xnoguer@php.net> | 
				
			||||
* | 
				
			||||
*  The majority of this is _NOT_ my code.  I simply ported it from the | 
				
			||||
*  PERL Spreadsheet::WriteExcel module. | 
				
			||||
* | 
				
			||||
*  The author of the Spreadsheet::WriteExcel module is John McNamara | 
				
			||||
*  <jmcnamara@cpan.org> | 
				
			||||
* | 
				
			||||
*  I _DO_ maintain this code, and John McNamara has nothing to do with the | 
				
			||||
*  porting of this code to PHP.  Any questions directly related to this | 
				
			||||
*  class library should be directed to me. | 
				
			||||
* | 
				
			||||
*  License Information: | 
				
			||||
* | 
				
			||||
*    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets | 
				
			||||
*    Copyright (c) 2002-2003 Xavier Noguer xnoguer@php.net | 
				
			||||
* | 
				
			||||
*    This library is free software; you can redistribute it and/or | 
				
			||||
*    modify it under the terms of the GNU Lesser General Public | 
				
			||||
*    License as published by the Free Software Foundation; either | 
				
			||||
*    version 2.1 of the License, or (at your option) any later version. | 
				
			||||
* | 
				
			||||
*    This library is distributed in the hope that it will be useful, | 
				
			||||
*    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
				
			||||
*    Lesser General Public License for more details. | 
				
			||||
* | 
				
			||||
*    You should have received a copy of the GNU Lesser General Public | 
				
			||||
*    License along with this library; if not, write to the Free Software | 
				
			||||
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
				
			||||
*/ | 
				
			||||
 | 
				
			||||
require_once 'PEAR.php'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
* Class for writing Excel BIFF records. | 
				
			||||
* | 
				
			||||
* From "MICROSOFT EXCEL BINARY FILE FORMAT" by Mark O'Brien (Microsoft Corporation): | 
				
			||||
* | 
				
			||||
* BIFF (BInary File Format) is the file format in which Excel documents are | 
				
			||||
* saved on disk.  A BIFF file is a complete description of an Excel document. | 
				
			||||
* BIFF files consist of sequences of variable-length records. There are many | 
				
			||||
* different types of BIFF records.  For example, one record type describes a | 
				
			||||
* formula entered into a cell; one describes the size and location of a | 
				
			||||
* window into a document; another describes a picture format. | 
				
			||||
* | 
				
			||||
* @author   Xavier Noguer <xnoguer@php.net> | 
				
			||||
* @category FileFormats | 
				
			||||
* @package  Spreadsheet_Excel_Writer | 
				
			||||
*/ | 
				
			||||
 | 
				
			||||
class Spreadsheet_Excel_Writer_BIFFwriter extends PEAR | 
				
			||||
{ | 
				
			||||
    /** | 
				
			||||
    * The BIFF/Excel version (5). | 
				
			||||
    * @var integer | 
				
			||||
    */ | 
				
			||||
    var $_BIFF_version = 0x0500; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * The byte order of this architecture. 0 => little endian, 1 => big endian | 
				
			||||
    * @var integer | 
				
			||||
    */ | 
				
			||||
    var $_byte_order; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * The string containing the data of the BIFF stream | 
				
			||||
    * @var string | 
				
			||||
    */ | 
				
			||||
    var $_data; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * The size of the data in bytes. Should be the same as strlen($this->_data) | 
				
			||||
    * @var integer | 
				
			||||
    */ | 
				
			||||
    var $_datasize; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * The maximun length for a BIFF record. See _addContinue() | 
				
			||||
    * @var integer | 
				
			||||
    * @see _addContinue() | 
				
			||||
    */ | 
				
			||||
    var $_limit; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * The temporary dir for storing the OLE file | 
				
			||||
    * @var string | 
				
			||||
    */ | 
				
			||||
    var $_tmp_dir; | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Constructor | 
				
			||||
    * | 
				
			||||
    * @access public | 
				
			||||
    */ | 
				
			||||
    function Spreadsheet_Excel_Writer_BIFFwriter() | 
				
			||||
    { | 
				
			||||
        $this->_byte_order = ''; | 
				
			||||
        $this->_data       = ''; | 
				
			||||
        $this->_datasize   = 0; | 
				
			||||
        $this->_limit      = 2080; | 
				
			||||
        $this->_tmp_dir    = ''; | 
				
			||||
        // Set the byte order | 
				
			||||
        $this->_setByteOrder(); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Determine the byte order and store it as class data to avoid | 
				
			||||
    * recalculating it for each call to new(). | 
				
			||||
    * | 
				
			||||
    * @access private | 
				
			||||
    */ | 
				
			||||
    function _setByteOrder() | 
				
			||||
    { | 
				
			||||
        // Check if "pack" gives the required IEEE 64bit float | 
				
			||||
        $teststr = pack("d", 1.2345); | 
				
			||||
        $number  = pack("C8", 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F); | 
				
			||||
        if ($number == $teststr) { | 
				
			||||
            $byte_order = 0;    // Little Endian | 
				
			||||
        } elseif ($number == strrev($teststr)){ | 
				
			||||
            $byte_order = 1;    // Big Endian | 
				
			||||
        } else { | 
				
			||||
            // Give up. I'll fix this in a later version. | 
				
			||||
            return $this->raiseError("Required floating point format ". | 
				
			||||
                                     "not supported on this platform."); | 
				
			||||
        } | 
				
			||||
        $this->_byte_order = $byte_order; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * General storage function | 
				
			||||
    * | 
				
			||||
    * @param string $data binary data to prepend | 
				
			||||
    * @access private | 
				
			||||
    */ | 
				
			||||
    function _prepend($data) | 
				
			||||
    { | 
				
			||||
        if (strlen($data) > $this->_limit) { | 
				
			||||
            $data = $this->_addContinue($data); | 
				
			||||
        } | 
				
			||||
        $this->_data      = $data.$this->_data; | 
				
			||||
        $this->_datasize += strlen($data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * General storage function | 
				
			||||
    * | 
				
			||||
    * @param string $data binary data to append | 
				
			||||
    * @access private | 
				
			||||
    */ | 
				
			||||
    function _append($data) | 
				
			||||
    { | 
				
			||||
        if (strlen($data) > $this->_limit) { | 
				
			||||
            $data = $this->_addContinue($data); | 
				
			||||
        } | 
				
			||||
        $this->_data      = $this->_data.$data; | 
				
			||||
        $this->_datasize += strlen($data); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Writes Excel BOF record to indicate the beginning of a stream or | 
				
			||||
    * sub-stream in the BIFF file. | 
				
			||||
    * | 
				
			||||
    * @param  integer $type Type of BIFF file to write: 0x0005 Workbook, | 
				
			||||
    *                       0x0010 Worksheet. | 
				
			||||
    * @access private | 
				
			||||
    */ | 
				
			||||
    function _storeBof($type) | 
				
			||||
    { | 
				
			||||
        $record  = 0x0809;        // Record identifier | 
				
			||||
 | 
				
			||||
        // According to the SDK $build and $year should be set to zero. | 
				
			||||
        // However, this throws a warning in Excel 5. So, use magic numbers. | 
				
			||||
        if ($this->_BIFF_version == 0x0500) { | 
				
			||||
            $length  = 0x0008; | 
				
			||||
            $unknown = ''; | 
				
			||||
            $build   = 0x096C; | 
				
			||||
            $year    = 0x07C9; | 
				
			||||
        } elseif ($this->_BIFF_version == 0x0600) { | 
				
			||||
            $length  = 0x0010; | 
				
			||||
            $unknown = pack("VV", 0x00000041, 0x00000006); //unknown last 8 bytes for BIFF8 | 
				
			||||
            $build   = 0x0DBB; | 
				
			||||
            $year    = 0x07CC; | 
				
			||||
        } | 
				
			||||
        $version = $this->_BIFF_version; | 
				
			||||
 | 
				
			||||
        $header  = pack("vv",   $record, $length); | 
				
			||||
        $data    = pack("vvvv", $version, $type, $build, $year); | 
				
			||||
        $this->_prepend($header . $data . $unknown); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Writes Excel EOF record to indicate the end of a BIFF stream. | 
				
			||||
    * | 
				
			||||
    * @access private | 
				
			||||
    */ | 
				
			||||
    function _storeEof() | 
				
			||||
    { | 
				
			||||
        $record    = 0x000A;   // Record identifier | 
				
			||||
        $length    = 0x0000;   // Number of bytes to follow | 
				
			||||
        $header    = pack("vv", $record, $length); | 
				
			||||
        $this->_append($header); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In | 
				
			||||
    * Excel 97 the limit is 8228 bytes. Records that are longer than these limits | 
				
			||||
    * must be split up into CONTINUE blocks. | 
				
			||||
    * | 
				
			||||
    * This function takes a long BIFF record and inserts CONTINUE records as | 
				
			||||
    * necessary. | 
				
			||||
    * | 
				
			||||
    * @param  string  $data The original binary data to be written | 
				
			||||
    * @return string        A very convenient string of continue blocks | 
				
			||||
    * @access private | 
				
			||||
    */ | 
				
			||||
    function _addContinue($data) | 
				
			||||
    { | 
				
			||||
        $limit  = $this->_limit; | 
				
			||||
        $record = 0x003C;         // Record identifier | 
				
			||||
 | 
				
			||||
        // The first 2080/8224 bytes remain intact. However, we have to change | 
				
			||||
        // the length field of the record. | 
				
			||||
        $tmp = substr($data, 0, 2).pack("v", $limit-4).substr($data, 4, $limit - 4); | 
				
			||||
 | 
				
			||||
        $header = pack("vv", $record, $limit);  // Headers for continue records | 
				
			||||
 | 
				
			||||
        // Retrieve chunks of 2080/8224 bytes +4 for the header. | 
				
			||||
        $data_length = strlen($data); | 
				
			||||
        for ($i = $limit; $i <  ($data_length - $limit); $i += $limit) { | 
				
			||||
            $tmp .= $header; | 
				
			||||
            $tmp .= substr($data, $i, $limit); | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        // Retrieve the last chunk of data | 
				
			||||
        $header  = pack("vv", $record, strlen($data) - $i); | 
				
			||||
        $tmp    .= $header; | 
				
			||||
        $tmp    .= substr($data, $i, strlen($data) - $i); | 
				
			||||
 | 
				
			||||
        return $tmp; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
    * Sets the temp dir used for storing the OLE file | 
				
			||||
    * | 
				
			||||
    * @access public | 
				
			||||
    * @param string $dir The dir to be used as temp dir | 
				
			||||
    * @return true if given dir is valid, false otherwise | 
				
			||||
    */ | 
				
			||||
    function setTempDir($dir) | 
				
			||||
    { | 
				
			||||
        if (is_dir($dir)) { | 
				
			||||
            $this->_tmp_dir = $dir; | 
				
			||||
            return true; | 
				
			||||
        } | 
				
			||||
        return false; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
?> | 
				
			||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						@ -1,230 +0,0 @@ | 
				
			||||
<?php | 
				
			||||
/* | 
				
			||||
*  Module written by Herman Kuiper <herman@ozuzo.net> | 
				
			||||
* | 
				
			||||
*  License Information: | 
				
			||||
* | 
				
			||||
*    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets | 
				
			||||
*    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com | 
				
			||||
* | 
				
			||||
*    This library is free software; you can redistribute it and/or | 
				
			||||
*    modify it under the terms of the GNU Lesser General Public | 
				
			||||
*    License as published by the Free Software Foundation; either | 
				
			||||
*    version 2.1 of the License, or (at your option) any later version. | 
				
			||||
* | 
				
			||||
*    This library is distributed in the hope that it will be useful, | 
				
			||||
*    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
				
			||||
*    Lesser General Public License for more details. | 
				
			||||
* | 
				
			||||
*    You should have received a copy of the GNU Lesser General Public | 
				
			||||
*    License along with this library; if not, write to the Free Software | 
				
			||||
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
				
			||||
*/ | 
				
			||||
 | 
				
			||||
//require_once('PEAR.php'); | 
				
			||||
 | 
				
			||||
// Possible operator types | 
				
			||||
 | 
				
			||||
/* | 
				
			||||
FIXME: change prefixes | 
				
			||||
*/ | 
				
			||||
define("OP_BETWEEN",    0x00); | 
				
			||||
define("OP_NOTBETWEEN", 0x01); | 
				
			||||
define("OP_EQUAL",      0x02); | 
				
			||||
define("OP_NOTEQUAL",   0x03); | 
				
			||||
define("OP_GT",         0x04); | 
				
			||||
define("OP_LT",         0x05); | 
				
			||||
define("OP_GTE",        0x06); | 
				
			||||
define("OP_LTE",        0x07); | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
* Baseclass for generating Excel DV records (validations) | 
				
			||||
* | 
				
			||||
* @author   Herman Kuiper | 
				
			||||
* @category FileFormats | 
				
			||||
* @package  Spreadsheet_Excel_Writer | 
				
			||||
*/ | 
				
			||||
class Spreadsheet_Excel_Writer_Validator | 
				
			||||
{ | 
				
			||||
   var $_type; | 
				
			||||
   var $_style; | 
				
			||||
   var $_fixedList; | 
				
			||||
   var $_blank; | 
				
			||||
   var $_incell; | 
				
			||||
   var $_showprompt; | 
				
			||||
   var $_showerror; | 
				
			||||
   var $_title_prompt; | 
				
			||||
   var $_descr_prompt; | 
				
			||||
   var $_title_error; | 
				
			||||
   var $_descr_error; | 
				
			||||
   var $_operator; | 
				
			||||
   var $_formula1; | 
				
			||||
   var $_formula2; | 
				
			||||
    /** | 
				
			||||
    * The parser from the workbook. Used to parse validation formulas also | 
				
			||||
    * @var Spreadsheet_Excel_Writer_Parser | 
				
			||||
    */ | 
				
			||||
    var $_parser; | 
				
			||||
 | 
				
			||||
    function Spreadsheet_Excel_Writer_Validator(&$parser) | 
				
			||||
    { | 
				
			||||
        $this->_parser       = $parser; | 
				
			||||
        $this->_type         = 0x01; // FIXME: add method for setting datatype | 
				
			||||
        $this->_style        = 0x00; | 
				
			||||
        $this->_fixedList    = false; | 
				
			||||
        $this->_blank        = false; | 
				
			||||
        $this->_incell       = false; | 
				
			||||
        $this->_showprompt   = false; | 
				
			||||
        $this->_showerror    = true; | 
				
			||||
        $this->_title_prompt = "\x00"; | 
				
			||||
        $this->_descr_prompt = "\x00"; | 
				
			||||
        $this->_title_error  = "\x00"; | 
				
			||||
        $this->_descr_error  = "\x00"; | 
				
			||||
        $this->_operator     = 0x00; // default is equal | 
				
			||||
        $this->_formula1    = ''; | 
				
			||||
        $this->_formula2    = ''; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
   function setPrompt($promptTitle = "\x00", $promptDescription = "\x00", $showPrompt = true) | 
				
			||||
   { | 
				
			||||
      $this->_showprompt = $showPrompt; | 
				
			||||
      $this->_title_prompt = $promptTitle; | 
				
			||||
      $this->_descr_prompt = $promptDescription; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function setError($errorTitle = "\x00", $errorDescription = "\x00", $showError = true) | 
				
			||||
   { | 
				
			||||
      $this->_showerror = $showError; | 
				
			||||
      $this->_title_error = $errorTitle; | 
				
			||||
      $this->_descr_error = $errorDescription; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function allowBlank() | 
				
			||||
   { | 
				
			||||
      $this->_blank = true; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function onInvalidStop() | 
				
			||||
   { | 
				
			||||
      $this->_style = 0x00; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
    function onInvalidWarn() | 
				
			||||
    { | 
				
			||||
        $this->_style = 0x01; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function onInvalidInfo() | 
				
			||||
    { | 
				
			||||
        $this->_style = 0x02; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function setFormula1($formula) | 
				
			||||
    { | 
				
			||||
        // Parse the formula using the parser in Parser.php | 
				
			||||
        $error = $this->_parser->parse($formula); | 
				
			||||
        if (PEAR::isError($error)) { | 
				
			||||
            return $this->_formula1; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        $this->_formula1 = $this->_parser->toReversePolish(); | 
				
			||||
        if (PEAR::isError($this->_formula1)) { | 
				
			||||
            return $this->_formula1; | 
				
			||||
        } | 
				
			||||
        return true; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function setFormula2($formula) | 
				
			||||
    { | 
				
			||||
        // Parse the formula using the parser in Parser.php | 
				
			||||
        $error = $this->_parser->parse($formula); | 
				
			||||
        if (PEAR::isError($error)) { | 
				
			||||
            return $this->_formula2; | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        $this->_formula2 = $this->_parser->toReversePolish(); | 
				
			||||
        if (PEAR::isError($this->_formula2)) { | 
				
			||||
            return $this->_formula2; | 
				
			||||
        } | 
				
			||||
        return true; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    function _getOptions() | 
				
			||||
    { | 
				
			||||
        $options = $this->_type; | 
				
			||||
        $options |= $this->_style << 3; | 
				
			||||
        if ($this->_fixedList) { | 
				
			||||
            $options |= 0x80; | 
				
			||||
        } | 
				
			||||
        if ($this->_blank) { | 
				
			||||
            $options |= 0x100; | 
				
			||||
        } | 
				
			||||
        if (!$this->_incell) { | 
				
			||||
            $options |= 0x200; | 
				
			||||
        } | 
				
			||||
        if ($this->_showprompt) { | 
				
			||||
            $options |= 0x40000; | 
				
			||||
        } | 
				
			||||
        if ($this->_showerror) { | 
				
			||||
            $options |= 0x80000; | 
				
			||||
        } | 
				
			||||
      $options |= $this->_operator << 20; | 
				
			||||
 | 
				
			||||
      return $options; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function _getData() | 
				
			||||
   { | 
				
			||||
      $title_prompt_len = strlen($this->_title_prompt); | 
				
			||||
      $descr_prompt_len = strlen($this->_descr_prompt); | 
				
			||||
      $title_error_len = strlen($this->_title_error); | 
				
			||||
      $descr_error_len = strlen($this->_descr_error); | 
				
			||||
 | 
				
			||||
      $formula1_size = strlen($this->_formula1); | 
				
			||||
      $formula2_size = strlen($this->_formula2); | 
				
			||||
 | 
				
			||||
      $data  = pack("V", $this->_getOptions()); | 
				
			||||
      $data .= pack("vC", $title_prompt_len, 0x00) . $this->_title_prompt; | 
				
			||||
      $data .= pack("vC", $title_error_len, 0x00) . $this->_title_error; | 
				
			||||
      $data .= pack("vC", $descr_prompt_len, 0x00) . $this->_descr_prompt; | 
				
			||||
      $data .= pack("vC", $descr_error_len, 0x00) . $this->_descr_error; | 
				
			||||
 | 
				
			||||
      $data .= pack("vv", $formula1_size, 0x0000) . $this->_formula1; | 
				
			||||
      $data .= pack("vv", $formula2_size, 0x0000) . $this->_formula2; | 
				
			||||
 | 
				
			||||
      return $data; | 
				
			||||
   } | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/*class Spreadsheet_Excel_Writer_Validation_List extends Spreadsheet_Excel_Writer_Validation | 
				
			||||
{ | 
				
			||||
   function Spreadsheet_Excel_Writer_Validation_list() | 
				
			||||
   { | 
				
			||||
      parent::Spreadsheet_Excel_Writer_Validation(); | 
				
			||||
      $this->_type = 0x03; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function setList($source, $incell = true) | 
				
			||||
   { | 
				
			||||
      $this->_incell = $incell; | 
				
			||||
      $this->_fixedList = true; | 
				
			||||
 | 
				
			||||
      $source = implode("\x00", $source); | 
				
			||||
      $this->_formula1 = pack("CCC", 0x17, strlen($source), 0x0c) . $source; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function setRow($row, $col1, $col2, $incell = true) | 
				
			||||
   { | 
				
			||||
      $this->_incell = $incell; | 
				
			||||
      //$this->_formula1 = ...; | 
				
			||||
   } | 
				
			||||
 | 
				
			||||
   function setCol($col, $row1, $row2, $incell = true) | 
				
			||||
   { | 
				
			||||
      $this->_incell = $incell; | 
				
			||||
      //$this->_formula1 = ...; | 
				
			||||
   } | 
				
			||||
}*/ | 
				
			||||
 | 
				
			||||
?> | 
				
			||||
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						
									
										
											File diff suppressed because it is too large
											Load Diff
										
									
								
							
						@ -1,6 +0,0 @@ | 
				
			||||
<html> | 
				
			||||
<head> | 
				
			||||
</head> | 
				
			||||
<body> | 
				
			||||
</body> | 
				
			||||
</html> | 
				
			||||
@ -1,6 +0,0 @@ | 
				
			||||
<html> | 
				
			||||
<head> | 
				
			||||
</head> | 
				
			||||
<body> | 
				
			||||
</body> | 
				
			||||
</html> | 
				
			||||
					Loading…
					
					
				
		Reference in new issue