PHPEXCEL批量导入数据
开发过程中有一些数据,如报表信息、财务统计等信息使用excel进行存储,需要将文件导入到数据库中,下面我们将以一个简单的小例子,演示批量导入。
使用thinkphp5.0版本框架结合phpexcel1.8版本进行演示批量导入数据至数据库中,下面为示例代码:
/** * 批量导入记录 */ 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条数据未出现问题。