最近深圳网站建设搜客来在处理一个项目,需要读取EXCEL数据并导入数据库中。因为EXCEL表格数据列数超过了Z,使用传统方式无能读取。今天特地和大家分享最后的解决方案,代码如下:

本方法使用的是PHPExcel插件,请自行下载。

public static function import_excel($file){

    // 判断文件是什么格式

    $type = pathinfo($file);

    $type = strtolower($type["extension"]);

    $type=$type==='csv' ? $type : 'Excel5';

    ini_set('max_execution_time', '0');

    Vendor('PHPExcel.PHPExcel');

    // 判断使用哪种格式

    $objReader = \PHPExcel_IOFactory::createReader($type);

    $objPHPExcel = $objReader->load($file);

    $sheet = $objPHPExcel->getSheet(0);

    // 取得总行数

    $highestRow = $sheet->getHighestRow();

    // 取得总列数,这里是关键两行

    $highestColumn = $sheet->getHighestColumn();

    $highestColumn = \PHPExcel_Cell::columnIndexFromString($highestColumn);

    //循环读取excel文件,读取一条,插入一条

    $data=array();

    //从第一行开始读取数据

    for($j=1;$j<=$highestRow;$j++){

        //从A列读取数据

        for($k=0;$k<=$highestColumn;$k++){

            // 读取单元格

            //$data[$j][]=$objPHPExcel->getActiveSheet()->getCell($k,$j)->getValue();

            $data[$j][]=$sheet->getCellByColumnAndRow($k,$j)->getValue();

        }

    }

    return $data;

}