Spaces:
Sleeping
Sleeping
| /* | |
| * 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('PEAR.php'); | |
| require_once('Spreadsheet/Excel/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; | |
| } | |
| } | |