3 * Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
5 * PERL Spreadsheet::WriteExcel module.
7 * The author of the Spreadsheet::WriteExcel module is John McNamara
10 * I _DO_ maintain this code, and John McNamara has nothing to do with the
11 * porting of this code to PHP. Any questions directly related to this
12 * class library should be directed to me.
14 * License Information:
16 * Spreadsheet_Excel_Writer: A library for generating Excel Spreadsheets
17 * Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
19 * This library is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU Lesser General Public
21 * License as published by the Free Software Foundation; either
22 * version 2.1 of the License, or (at your option) any later version.
24 * This library is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27 * Lesser General Public License for more details.
29 * You should have received a copy of the GNU Lesser General Public
30 * License along with this library; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
34 require_once 'PEAR.php';
35 require_once 'Spreadsheet/Excel/Writer/Workbook.php';
38 * Class for writing Excel Spreadsheets. This class should change COMPLETELY.
40 * @author Xavier Noguer <xnoguer@rezebra.com>
41 * @category FileFormats
42 * @package Spreadsheet_Excel_Writer
45 class Spreadsheet_Excel_Writer
extends Spreadsheet_Excel_Writer_Workbook
48 * The constructor. It just creates a Workbook
50 * @param string $filename The optional filename for the Workbook.
51 * @return Spreadsheet_Excel_Writer_Workbook The Workbook created
53 function Spreadsheet_Excel_Writer($filename = '')
55 $this->_filename
= $filename;
56 $this->Spreadsheet_Excel_Writer_Workbook($filename);
60 * Send HTTP headers for the Excel file.
62 * @param string $filename The filename to use for HTTP headers
65 function send($filename)
67 header("Content-type: application/vnd.ms-excel");
68 header("Content-Disposition: attachment; filename=\"$filename\"");
70 header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
71 header("Pragma: public");
75 * Utility function for writing formulas
76 * Converts a cell's coordinates to the A1 format.
80 * @param integer $row Row for the cell to convert (0-indexed).
81 * @param integer $col Column for the cell to convert (0-indexed).
82 * @return string The cell identifier in A1 format
84 function rowcolToCell($row, $col)
86 if ($col > 255) { //maximum column value exceeded
87 return new PEAR_Error("Maximum column value exceeded: $col");
90 $int = (int)($col / 26);
95 $chr1 = chr(ord('A') +
$int - 1);
98 $chr2 = chr(ord('A') +
$frac);
101 return $chr1 . $chr2 . $row;