You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.3 KiB
104 lines
3.3 KiB
<?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;
|
|
}
|
|
}
|
|
?>
|
|
|