PHP读取EXCEL文件

一条评论

2010 年 12 月 09 日 at 上午 10:46分类:PHP | WEB开发

这是自己写的一个基于PHPExcel操作excel文件的类
PHPExcel:点击下载
首先是读取excel文件的操作:

<?php
error_reporting(E_ALL);

date_default_timezone_set ('Asia/Shanghai');

/** PHPExcel 类文件*/
require_once 'PHPExcel.php';
/*
 * 输出到页面上的EXCEL
 */ 
class Excel
{   
   private $cellArray = array(
                        1=>'A', 2=>'B', 3=>'C', 4=>'D', 5=>'E',
                        6=>'F', 7=>'G', 8=>'H', 9=>'I',10=>'J',
                        11=>'K',12=>'L',13=>'M',14=>'N',15=>'O',
                        16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',
                        21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',
                        26=>'Z',
                        27=>'AA', 28=>'AB', 29=>'AC', 30=>'AD', 31=>'AE',
                        32=>'AF', 33=>'AG', 34=>'AH', 35=>'AI',36=>'AJ',
                        37=>'AK',38=>'AL',39=>'AM',40=>'AN',41=>'AO',
                        42=>'AP',43=>'AQ',44=>'AR',45=>'AS',46=>'AT',
                        47=>'AU',48=>'AV',49=>'AW',50=>'AX',51=>'AY',
                        52=>'AZ', 53=>'BA', 54=>'BB', 55=>'BC', 56=>'BD', 57=>'BE',
                        58=>'BF', 59=>'BG', 60=>'BH', 61=>'BI', 62=>'BJ', 63=>'BK', 64=>'BL')
/**
     * 读取Excel
     * @param  Excel文件名称 
     * @param  返回数据的键名 
     * @return data   
     */ 
    function read($fileName,$rows='')
    {   
        //$fileName      = "ExcelFile/MyExcel.xlsx";
        $objReader     = new PHPExcel_Reader_Excel2007();
        $objPHPExcel   = $objReader->load("$fileName");
        $sheet         = $objPHPExcel->getActiveSheet();
        $highestRow    = $sheet->getHighestRow();           // 取得总行数  
        $highestColumn = $sheet->getHighestColumn();       // 取得总列数D
        
        $rowMin = array_search($highestColumn,$this->cellArray); //根据返回的总列数D 返回对用的KEY
        
        for($i = 2;$i<=$highestRow;$i++)                   //循环总行数
        {   
            for($a = 1;$a<=$rowMin;$a++)                   //循环总列数 
            {     
                 if(empty($rows))
                 {
                    $data[$i][$a] = $sheet->getCell($this->cellArray[$a].$i)->getValue();      
                 }
                 else
                 {
                    $data[$i][$rows[$a-1]] = $sheet->getCell($this->cellArray[$a].$i)->getValue();         
                 }
                    
            }  
        }
        return $data;
    }
}

使用方法:

<?php
 require_once "Excel.php";
 $excel = new Excel();
 $data = $excel->read('MyExcel.xlsx');
 print_r($data);          //返回的是一个二维数组