• phpexcel读取excel的xls xlsx csv格式


    我之前写过一篇PHP读取csv文件的内容

    上代码index.php

    <?php
      
    
    /** 
     * 
     * @author XC
     * 
     */  
    class Excel
    {
        public $currentSheet;
        public $filePath;
        public $fileType;
        public $sheetIndex=0;
        public $allColumn;
        public $allRow;
        public function initialized($filePath) {
            if (file_exists($filePath)) {
                $this->filePath=$filePath;
            }else{
                return array();
            }
            //以硬盘方式缓存
            $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_discISAM;
            $cacheSettings = array();
            PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
            $file_ext=strtolower(pathinfo($this->filePath, PATHINFO_EXTENSION));
            switch ($file_ext) {
                case 'csv':
                    $this->fileType='csv';
                    break;
                case 'xlsx':
                    $this->fileType='excel';
                    break;
                case 'xls':
                    $this->fileType='excel';
                    break;
                default:
                    $this->fileType='';
                    break;
            }
            
            if ($this->fileType=='csv') {
                $PHPReader = new PHPExcel_Reader_CSV();
      
                //默认字符集
                $PHPReader->setInputEncoding('GBK');
      
                //默认分隔符  
                $PHPReader->setDelimiter(',');
      
                if(!$PHPReader->canRead($this->filePath)){
                    return array();
                }
            }elseif ($this->fileType=='excel'){
                $PHPReader = new PHPExcel_Reader_Excel2007();
      
                if(!$PHPReader->canRead($this->filePath)){
                    $PHPReader = new PHPExcel_Reader_Excel5();
      
                    if(!$PHPReader->canRead($this->filePath)){
                        return array();
                    }
                }
            }else{
                return array();
            }
      
            $PHPReader->setReadDataOnly(true);
            $PHPExcel = $PHPReader->load($this->filePath);
            $this->currentSheet = $PHPExcel->getSheet((int)$this->sheetIndex);
            //$this->currentSheet = $PHPExcel->getActiveSheet();
            $this->allColumn=$this->currentSheet->getHighestColumn();
            $this->allRow=$this->currentSheet->getHighestRow();
        }
      
        public function fetch($beginRow=NULL, $endRow=NULL){
            $currentSheet=$this->currentSheet;
            $allColumn=$this->allColumn;$allRow=$this->allRow;
            $dataSrc=$data=array();
            
            //获取列标题
            for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
                $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, 1)->getValue();//ord()將字符转为十进制数  
                $dataSrc[ord($currentColumn) - 65]=strtolower(trim($val));}
                //echo implode("	", $dataSrc);
                $beginRow=$beginRow ? $beginRow : 2;
                $endRow=$endRow ? $endRow : $allRow;
                for($currentRow = $beginRow ;$currentRow <= $endRow ;$currentRow++){
                    //从第A列开始输出$dataRow=array();
                    for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
                        $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();//ord()將字符转为十进制数  
                        $dataRow[$dataSrc[ord($currentColumn) - 65]]=$val;
                        //单元级数据处理 ... 格式化日期等  
                    }
      
                    //行级数据处理 ...  
      
                    if($dataRow){
                        $data[]=$dataRow;}
                }
      
                //echo '<pre>', print_r($data), '</pre>';
      
                //echo "
    ";
            return $data;
        }
    }
    
    
    
    require_once 'Classes/PHPExcel.php';
    $import=new Excel(); 
    $import->initialized(dirname(__FILE__) . '/test.xlsx'); 
    header("Content-type: text/html; charset=utf-8"); 
    echo '<pre>', print_r($import->fetch()), '</pre>';
    
    
    
    ?>

    其中的$import->initialized(dirname(__FILE__) . '/test.xlsx');        test.xlsx修改为自己的execl路径

    require_once 'Classes/PHPExcel.php';修改为你自己PHPExcel.php所在的路径

    PHPExcel.php可从官网下载 http://phpexcel.codeplex.com/

  • 相关阅读:
    BSGS模板(互质与不互质) 洛谷P4195、P3846
    整除分块(数论分块)
    洛谷P3327 [SDOI2015]约数个数和——莫比乌斯反演
    模块二
    模块
    二分法 匿名函数
    3.26作业
    函数的递归调用
    yield表达式 三元表达式
    3.25作业
  • 原文地址:https://www.cnblogs.com/xcxc/p/4462654.html
Copyright © 2020-2023  润新知