PHPExcel讀取excel03/07版到數組


想總結下PHPExcel的讀取excel到數組的function,用的時候直接調取,懶……

參考了以下鏈接:

http://www.jb51.net/article/29071.htm

http://www.cnblogs.com/mingaixin/p/4746454.html

感謝二位大神!

 

直接上代碼吧:

<?php
/**
 * User: Klaus
 * Date: 2016/4/8 15:46
 */
//聲明編碼,防止中文亂碼
header("Content-type: text/html; charset=utf-8");

//引入PHPExcel
require "PHPExcel_1.8.0_doc/Classes/PHPExcel.php";

echo '07版:',PHP_EOL;
var_dump(excel2arr('TEST.xlsx'));//07版
echo '03版:',PHP_EOL;
var_dump(excel2arr('TEST.xls'));//03版

function excel2arr($filePath){
      // Check prerequisites
        if (!file_exists($filePath)) {
            exit("not found $filePath.\n");
        }

        //默認用excel2007讀取excel,若格式不對,則用之前的版本進行讀取
        $reader = new PHPExcel_Reader_Excel2007();
        if(!$reader->canRead($filePath)){
            $reader = new PHPExcel_Reader_Excel5();
            if(!$reader->canRead($filePath)){
                return 'no Excel';
            }
        }
        $PHPExcel = $reader->load($filePath); // 載入excel文件
        $sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表
        $highestRow = $sheet->getHighestRow(); // 取得總行數
        $highestColumm = $sheet->getHighestColumn(); // 取得總列數
        $highestColumm= PHPExcel_Cell::columnIndexFromString($highestColumm); //字母列轉換為數字列 如:AA變為27

        /** 循環讀取每個單元格的數據 */
        for ($row = 1; $row <= $highestRow; $row++){//行數是以第1行開始
            for ($column = 0; $column < $highestColumm; $column++) {//列數是以第0列開始
                $columnName = PHPExcel_Cell::stringFromColumnIndex($column);
    //        echo $sheet->getCellByColumnAndRow($column, $row)->getValue()." ";
                $excelarr[$row][] =  $sheet->getCellByColumnAndRow($column, $row)->getValue();
            }
        }
        return $excelarr;
}

?>

 

結果如下:

 

增加:

將列的數字序號轉成字母使用,代碼如下:

  復制代碼 代碼如下:

  PHPExcel_Cell::stringFromColumnIndex($i); // 從o開始

  將列的字母轉成數字序號使用,代碼如下:

  復制代碼 代碼如下:

  PHPExcel_Cell::columnIndexFromString('AA');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM