Login   Register  
PHP Classes
elePHPant
Icontem

File: ExcelXMLCell.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Andrew Aculana  >  Excel XML Parser  >  ExcelXMLCell.php  >  Download  
File: ExcelXMLCell.php
Role: Class source
Content type: text/plain
Description: Cell Class
Class: Excel XML Parser
Read and write data to Excel XML worksheets
Author: By
Last change: Update Version 2.0
Date: 8 years ago
Size: 4,868 bytes
 

Contents

Class file image Download
<?php
/*
* ============================================================================
*
* @name ExcelXMLCell.php
*
* @author Andrew A. Aculana
* @version 2.0
* @license    http://opensource.org/licenses/gpl-license.php GNU Public License
* @date 2006-07-03
*
* ============================================================================
*
* License:    GNU Lesser General Public License (LGPL)
*
* Copyright (c) 2004 LINK2SUPPORT INC.  All rights reserved.
*
* This file is part of the L2S Online Application Framework
*
* 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
*
* ============================================================================
*/

/**
 * @package ExcelXMLParser
 * @subpackage ExcelXMLParser
 */
 
class ExcelXMLCell{
    
    
/**
     * Excel XML Cell Attributes
     * @var String $data
     */
     
    
var $data;
    var 
$value;
    var 
$celladdress;
    var 
$Encoding;
#-----------------------------------------------------------------------------#    

    /**
     * class constructor - initialize attributes
     * 
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return null
     */
    
function ExcelXMLCell(&$Data,&$Encoding){
        
$this->data =& $Data;
        
$this->Encoding =& $Encoding;
    }
#-----------------------------------------------------------------------------#

    /**
     * set the cell value
     * 
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @param int $Column
     * @return null
     */
    
function setValue($value ""){
        if(isset(
$this->data['children']['Data'][0]['values'][0])){
            if(isset(
$this->data['children']['Data'][0]['attrs']['ss:Type'])){
                
$ExistingType $this->data['children']['Data'][0]['attrs']['ss:Type'];
            }elseif(isset(
$this->data['children']['Data'][0]['attrs']['ss:Type'])){
                
$ExistingType $this->data['children']['Data'][0]['attrs']['Type'];
            }
            switch(
$ExistingType){
                case 
'String':
                    break;
                case 
'Number':
                    if(!
is_numeric($value)){
                        
ExcelXMLError::raiseError("Invalid Value for Cell ".$this->getCellAddress()." of type ".$ExistingType,E_USER_WARNING);
                    }
                    break;
                case 
'Boolean':
                    if(!
is_int($value)){
                        
ExcelXMLError::raiseError("Invalid Value for Cell ".$this->getCellAddress()." of type ".$ExistingType,E_USER_WARNING);
                    }
                    break;
                case 
'DateTime':
                    
/* date */
                    
if(preg_match("/-/i"$value)){
                        
$Date date('Y-m-d',strtotime($value));
                        
$value $Date."T00:00:00.000";
                    
/* time */
                    
}elseif(preg_match("/:/i"$value)){
                        
$value "1900-01-01T".date('H:i:s.000',strtotime($value));
                    }else{
                        
/* invalid cell value for datetime */
                        
ExcelXMLError::raiseError("Invalid Value for Cell ".$this->getCellAddress()." of type ".$ExistingType,E_USER_WARNING);
                    }
                    break;
            }
            
$this->data['children']['Data'][0]['values'][0] = $value;
        }else{
            
/* unknown cell or cell does not exist */
            
ExcelXMLError::raiseError("Error: Cell ".$this->getCellAddress()." does not exist",E_USER_WARNING);
        }
        
$this->value =& $value;
    }
#-----------------------------------------------------------------------------#

    /**
     * get the current cell value
     * 
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return int
     */
    
function &getValue(){
        if(isset(
$this->data['children']['Data'][0]['values'][0])){
            
$this->value =& $this->data['children']['Data'][0]['values'][0];
        }else{
            
/* unknown cell format */
            
return "";
        }
        return 
$this->value;
    }
#-----------------------------------------------------------------------------#

    /**
     * get the current cell address
     * 
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return int
     */
    
function getCellAddress(){
        if(isset(
$this->data['CellAddress']['A1'])){
            
$this->celladdress $this->data['CellAddress']['A1'];
        }else{
            
ExcelXMLError::raiseError("Error: Cell ".$this->getCellAddress()." does not exist",E_USER_WARNING);
        }
        return 
$this->celladdress;
    }
}
?>