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