thinkphp5使用PHPExcel导入Excel数据

时间:2023-04-03 22:44:44

安装PHPExcel扩展类

地址:https://github.com/PHPOffice/PHPExcel

①通过composer安装

②手动下载, 放在项目的extend目录下

代码中引入

由于PHPExcel中没有命名空间, 所以引用时使用如下方式

Loader::import('phpexcel.PHPExcel');
Loader::import('phpexcel.PHPExcel.IOFactory');

后台数据导入处理完整代码:

// $excel_url: 文件路径public function importFromExcel($excel_url)
{
    Loader::import('phpexcel.PHPExcel.IOFactory');
    $fileExt = getExt($excel_url);   // 判断文件后缀为xls还是xlsx
    if ($fileExt == 'xls') {
        $reader = \PHPExcel_IOFactory::createReader('Excel5');
    } else {
        $reader = \PHPExcel_IOFactory::createReader('Excel2007');
    }
    $allSheets = $reader->load('/www/FenFa/public'.$excel_url);
    $excel_arr = $allSheets->getSheet(0)->toArray();
    array_shift($excel_arr);
    $data = [];
    foreach ($excel_arr as $k=>$v) {
        if ($v[1]) {       // Excel数据项与数据表字段对应
            $data[$k]['cooperation_id']   = $v[1];
            $data[$k]['settlement_price'] = $v[2];
            $data[$k]['settlement_ratio'] = $v[3];
            $data[$k]['settlement_num']   = $v[4];
        }
    }
    foreach ($data as $v) {
        Db::name('data')->insert($v);
    }
}