zoukankan      html  css  js  c++  java
  • 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.
    ");
            }
    
            //默认用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');
  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/pthlp/p/5368649.html
Copyright © 2011-2022 走看看