PHPEXCEL批量导入数据

2019-12-27 18:08:12 浏览数 (1)

开发过程中有一些数据,如报表信息、财务统计等信息使用excel进行存储,需要将文件导入到数据库中,下面我们将以一个简单的小例子,演示批量导入。

使用thinkphp5.0版本框架结合phpexcel1.8版本进行演示批量导入数据至数据库中,下面为示例代码:

代码语言:javascript复制
/**
 * 批量导入记录
 */
public function push()
{
    //获取上传后的文件
    $fileName = 'demo.xls';
    //文件路径
    $filePath = './txt/' . $fileName;
    //实例化PHPExcel类
    $PHPReader = new PHPExcel_Reader_Excel5();
    //读取excel文件
    $objPHPExcel = $PHPReader->load($filePath);
    //读取excel文件中的第一个工作表
    $sheet  = $objPHPExcel->getSheet(0);
    $allRow = $sheet->getHighestRow();  //取得总行数
    //$allColumn = $sheet->getHighestColumn();  //取得总列数
    //从第二行开始插入,第一行是列名
    for($j = 1; $j <= $allRow; $j  ) {
        $data['m_name'] = $objPHPExcel->getActiveSheet()->getCell("A" . $j)->getValue();
        $data['m_phone']  = $objPHPExcel->getActiveSheet()->getCell("B" . $j)->getValue();
        $data['m_status']  = 1;
        $last_id      = $this->member_model->insert($data);//保存数据,并返回主键id
        if($last_id) {
            echo "第" . $j . "行导入成功<br/>";
        } else {
            echo "第" . $j . "行导入失败!<br/>";
        }
    }
}

注意:thinkphp框架,在进行循环插入时不要使用db类,数量多的情况下会出现创建进程过多的情况,导致写入失败,建议使用模型方法,测试10000条数据未出现问题。

0 人点赞