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');
  • 相关阅读:
    java之day4补充
    java之day4
    JAVA之day3对象
    JAVA之DAY3
    JAVA之DAY2
    element-ui表格添加复选框及根据列表中的数据判断是否可选
    h5手机端上传多张图片(界面上的展示图片,删除图片)
    模态框-开启关闭事件
    Vue-粒子特效(vue-particles)
    网页常用代码片段-sessionStorage存储JSON
  • 原文地址:https://www.cnblogs.com/pthlp/p/5368649.html
Copyright © 2011-2022 走看看