PageRenderTime 122ms CodeModel.GetById 60ms app.highlight 3ms RepoModel.GetById 58ms app.codeStats 0ms

/functions/PEAR/Spreadsheet/Excel/Writer.php

https://bitbucket.org/bertramtruong/b-ipam
PHP | 104 lines | 35 code | 9 blank | 60 comment | 2 complexity | 113a7fab2f5229083216b32d85649145 MD5 | raw file
  1<?php
  2/*
  3*  Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
  4*
  5*  PERL Spreadsheet::WriteExcel module.
  6*
  7*  The author of the Spreadsheet::WriteExcel module is John McNamara
  8*  <jmcnamara@cpan.org>
  9*
 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.
 13*
 14*  License Information:
 15*
 16*    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
 17*    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
 18*
 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.
 23*
 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.
 28*
 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
 32*/
 33
 34require_once 'PEAR.php';
 35require_once '../../functions/PEAR/Spreadsheet/Excel/Writer/Workbook.php';
 36
 37/**
 38* Class for writing Excel Spreadsheets. This class should change COMPLETELY.
 39*
 40* @author   Xavier Noguer <xnoguer@rezebra.com>
 41* @category FileFormats
 42* @package  Spreadsheet_Excel_Writer
 43*/
 44
 45class Spreadsheet_Excel_Writer extends Spreadsheet_Excel_Writer_Workbook
 46{
 47    /**
 48    * The constructor. It just creates a Workbook
 49    *
 50    * @param string $filename The optional filename for the Workbook.
 51    * @return Spreadsheet_Excel_Writer_Workbook The Workbook created
 52    */
 53    function Spreadsheet_Excel_Writer($filename = '')
 54    {
 55        $this->_filename = $filename;
 56        $this->Spreadsheet_Excel_Writer_Workbook($filename);
 57    }
 58
 59    /**
 60    * Send HTTP headers for the Excel file.
 61    *
 62    * @param string $filename The filename to use for HTTP headers
 63    * @access public
 64    */
 65    function send($filename)
 66    {
 67        header("Content-type: application/vnd.ms-excel");
 68        header("Content-Disposition: attachment; filename=\"$filename\"");
 69        header("Expires: 0");
 70        header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
 71        header("Pragma: public");
 72    }
 73
 74    /**
 75    * Utility function for writing formulas
 76    * Converts a cell's coordinates to the A1 format.
 77    *
 78    * @access public
 79    * @static
 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
 83    */
 84    function rowcolToCell($row, $col)
 85    {
 86        if ($col > 255) { //maximum column value exceeded
 87            return new PEAR_Error("Maximum column value exceeded: $col");
 88        }
 89
 90        $int = (int)($col / 26);
 91        $frac = $col % 26;
 92        $chr1 = '';
 93
 94        if ($int > 0) {
 95            $chr1 = chr(ord('A') + $int - 1);
 96        }
 97
 98        $chr2 = chr(ord('A') + $frac);
 99        $row++;
100
101        return $chr1 . $chr2 . $row;
102    }
103}
104?>