在开发PHP程序时,很多时候我们会有将数据批量导入数据库的需求,如学生信息批量添加到数据库中,而事先用excel编排好,对excel实行操作,便是我们比较常用的选择方式。
在对excel的操作中,phpExcelReade便是很多人的共同选择。在具体实现中,我们可以以文件上传方式将excel文件上传到服务器中的某个位置,通过以下操作将excel中的数据导入到数据库后,在将上传的文件删除即可。
代码如下:
$dir=dirname(__FILE__); //获取当前脚本的绝对路径 $dir=str_replace(“//”,”/”,$dir).”/”; $filename=’uploadFile.xls‘; //可以定义一个上传后的文件名称 $result=move_uploaded_file($_FILES[‘upload’][‘tmp_name’],$dir.$filename);//假如上传到当前目录下 if($result) //如果上传文件成功,就执行导入excel操作 { require_once ‘phpExcelReader/Excel/reader.php‘; $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding(‘utf-8′);//设置在页面中输出的编码方式,而不是utf8 //该方法会自动判断上传的文件格式,不符合要求会显示错误提示信息(错误提示信息在该方法内部)。 $data->read(“$filename”); //读取上传到当前目录下名叫$filename的文件 error_reporting(E_ALL ^ E_NOTICE); //如果excel表带标题,则从$i=2开始,去掉excel表中的标题部分(要将$i<=改为$i<否则会插入一条多余的空数据) for ($i = 2; $i < $data->sheets[0][‘numRows’]; $i++) { $sql = “INSERT INTO user (stuid,class,name,sex,classNum,tel,addr,remark) VALUES(‘”. $data->sheets[0][‘cells’][$i][1].”‘,‘”. //学号 $data->sheets[0][‘cells’][$i][2].”‘,‘”. //班级 $data->sheets[0][‘cells’][$i][3].”‘,‘”. //姓名 $data->sheets[0][‘cells’][$i][4].”‘,‘”. //性别 $data->sheets[0][‘cells’][$i][5].”‘,‘”. //班内序号 $data->sheets[0][‘cells’][$i][6].”‘,‘”. //联系电话 $data->sheets[0][‘cells’][$i][7].”‘,‘”. //联系地址 $data->sheets[0][‘cells’][$i][8].”‘)”; //附注 $db->query($sql); $insert_info.= ” $sql</br>/n”; //可以用来显示数据插入的信息 } $totalNums=$data->sheets[0][‘numRows’]-2;//求出导入的总数据条数(这里是减去2,才会得到去除标题后的总数据) //echo “导入成功!”; unlink(“$filename”); //删除上传的excel文件 } else { $errmsg=”上传失败”; }
时间: 2024-11-08 20:57:28