php 导入excel

if($_FILES['files']){

uploadfile=_FILES['files'];

name=uploadfile['name'];//文件原名

type=uploadfile['type'];

tmp_name=uploadfile['tmp_name'];

size=uploadfile['size'];

error=uploadfile['error'];

// $uploadurl='../../../d/uploads/'; //上传路径

$path='./uploads/'; //上传路径

if (!is_dir($path)){//判断目录是否存在

mkdir($path);

}

$max_file_size=2000000; //最大上传限制 2M

if($name){

info = pathinfo(name);

ext = info['extension'];

}

newname=path.time().$info['basename'];//自定义名称

//允许上传类型

$allowType=array(

'xls','xlsx'

);

if(size\>max_file_size){$error=2;}

// echo $error;exit;

switch($error){

case 0:

if(!in_array(ext,allowType)){

$msg = '文件类型错误';

printerror($msg,'',1,0,1);

// echo "<script>alert('文件类型错误');self.location.href='ImportMember.php';</script>";

}else{

move_uploaded_file(tmp_name,newname);

}

break;

case 1:

$msg = '文件超过系统限定大小';

printerror($msg,'',1,0,1);

break;

case 2:

$msg = '最大文件不能超过2M';

printerror($msg,'',1,0,1);

break;

case 3:

$msg = '文件只有部分被上传';

printerror($msg,'',1,0,1);

break;

case 4:

$msg = '没有文件被上传';

printerror($msg,'',1,0,1);

break;

case 5:

$msg = '文件上传大小为0';

printerror($msg,'',1,0,1);

break;

default:

$msg = '非法上传';

printerror($msg,'',1,0,1);

break;

}

//查找文件

if(file_exists($newname)){

require_once '../../extend/PHPExcel/PHPExcel.php';

require_once '../../extend/PHPExcel/PHPExcel/IOFactory.php';

if($ext=='xls'){

require_once '../../extend/PHPExcel/PHPExcel/Reader/Excel5.php';// excel 2003

$objReader=PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format

}else{

require_once '../../extend/PHPExcel/PHPExcel/Reader/Excel2007.php';// excel 2007

$objReader=PHPExcel_IOFactory::createReader('Excel2007');//use excel2007 for 2007 format

}

// objPHPExcel=objReader->load(newname);//newname即Excel文件的路径

// objPHPExcel = objReader->load($newname);//加载文件(这个容易造成httpd崩溃)

objPHPExcel = PHPExcel_IOFactory::load(newname);//加载文件

sheet=objPHPExcel->getSheet(0);//获取第一个工作表

highestRow=sheet->getHighestRow();//取得总行数

highestColumn=sheet->getHighestColumn(); //取得总列数

// echo $highestRow;exit;

for(i=3;i<=highestRow;i++){

username=trim(objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue());

password=trim(objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue());

$rnd=make_password(20);

email=trim(objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue());

$registertime = date('Y-m-d H:i:s',time());

groupid = trim(objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue());

$salt=eReturnMemberSalt();

$userkey=eReturnMemberUserKey();

$checked = 1;

class_name=trim(objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue());

truename=trim(objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue());

gender=trim(objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue());

phone=trim(objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue());

address = trim(objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue());

username=strtolower(username);

email=strtolower(email);

if($groupid=='学生'){

$groupid = 7;

}elseif($groupid=='老师'){

$groupid = 8;

}

empty(gender) ? gender = '未知' : gender = gender;

empty(groupid)? groupid = 7 : groupid = groupid;

empty(password)?password=eDoMemberPw(123456,salt):password=eDoMemberPw(password,salt);

if(empty($username)){

$flag = 0;

msg='第'.(i-2).'条记录出错,用户名不能为空;请重新导入';

break;

}

if(empty($class_name)){

$flag = 0;

msg = '第'.(i-2).'条记录出错,班级不能为空;请重新导入';

break;

}

if(empty($truename)){

$flag = 0;

msg = '第'.(i-2).'条记录出错,真实姓名不能为空;请重新导入';

break;

}

num=empire->gettotal("select count(*) as total from ".eReturnMemberTable()." where ".egetmf('username')."='$username' limit 1");

if($num){

$flag = 0;

msg='第'.(i-2)."条记录出错,该用户已存在;请重新导入";

break;

}

if(!empty($email)){

if(!chemail($email))

{

$flag = 0;

msg='第'.(i-2)."条记录出错,邮箱格式不正确; 请重新导入";

break;

}

if($pr['regemailonly'])

{

num=empire->gettotal("select count(*) as total from ".eReturnMemberTable()." where ".egetmf('email')."='$email' limit 1");

if($num)

{

$flag = 0;

msg='第'.(i-2)."条记录出错,邮箱已注册; 请重新导入";

break;

}

}

}

// else{

// $flag = 0;

// msg='第'.(i-1)."条记录出错,邮箱不能为空; 请重新导入";

// break;

// }

// echo $member_r[0];exit;

sql=empire->query("insert into ".eReturnMemberTable()."(".eReturnInsertMemberF('username,password,rnd,email,registertime,groupid,userfen,userdate,money,zgroupid,havemsg,checked,salt,userkey').") values('username','password','rnd','email','registertime','groupid','public_r\[reggetfen\]','0','0','0','0','checked','salt','userkey');");

if($sql){//插入成功

userid=empire->lastid();

ins_id\[\] = userid;

addr=empire->fetch1("select * from {dbtbpre}enewsmemberadd where userid='userid'");

if(!$addr){

spacestyleid = groupid;

sql1=empire->query("insert into {dbtbpre}enewsmemberadd(userid,truename,spacestyleid,regip,lasttime,lastip,loginnum,regipport,lastipport,class_name".member_r[0].") values('userid','truename','spacestyleid','regip','lasttime','regip','1','regipport','regipport','class_name'".member_r[1].");");

if($sql1){

$flag = 1;

$msg = '导入成功';

$gotourl = 'ListMember.php';

insids = implode(',',ins_id);

// printerror($msg,'ListMember.php',1,0,1);

}else{

$flag = 0;

$msg = '导入失败';

$gotourl = 'ImportMember.php';

insids = implode(',',ins_id);

break;

}

}

}

}

@unlink($newname);

if($flag==1){

printerror(msg,gotourl,1,0,1);

}else{

if($insids){

sql2 = "delete from {dbtbpre}enewsmember where userid in ($insids)";

res1 = empire->query($sql2);

sql3 = "delete from {dbtbpre}enewsmemberadd where userid in ($insids)";

res2 = empire->query($sql3);

}

printerror(msg,gotourl,1,0,1);

}

}else{

echo "<script>alert('请选择要导入的文件')</script>";

}

}

相关推荐
醇氧1 小时前
【wps】 excel 删除重复项
excel·wps
SuperherRo3 小时前
WEB攻防-文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒
php·文件包含·伪协议·lfi·无文件·黑白盒·rfi
盛夏绽放9 小时前
Vue3 中 Excel 导出的性能优化与实战指南
vue.js·excel
Tomorrow'sThinker12 小时前
[特殊字符] Python 自动查找替换 Excel 单元格内容 —— 高效批量处理
excel
Shipley Leo12 小时前
如何在Excel中每隔几行取一行
excel
bing_15812 小时前
Excel 数据透视表不够用时,如何处理来自多个数据源的数据?
excel
用户Taobaoapi201413 小时前
Taobao agent USA丨美国淘宝代购1688代采集运系统搭建指南
数据挖掘·php
蓝色记忆13 小时前
Classmap 如何兼容旧代码
php
蓝色记忆16 小时前
Composer PSR-4 自动加载机制的完整流程
php
想要入门的程序猿16 小时前
Qt写入excel
数据库·qt·excel