[php]代码 set_time_limit(0);//防止数据量过大超时
//处理进程
import('org.net.uploadfile');
$upload = new uploadfile(); // 实例化上传类
$upload->maxsize = 4 * 1024 * 1024; // 设置附件上传大小
$upload->allowexts = array('xls');
$upload->savepath = './upload/data/'; // 设置附件上传目录
$upload->saverule = date('ymdhis');
if (!$upload->upload()) { // 上传错误提示错误信息
echo $upload->geterrormsg();
} else {
//进行异常捕获,防止导入错误
try{
//导入完成,开始数据处理流程
$info = $upload->getuploadfileinfo();
$data = $info[0];
$path = $data['savepath'].$data['savename'];
/**
* 开始excel处理进程
*/
vendor('phpexcel.phpexcel');
$objreader = new phpexcel_reader_excel5();
$objexcel = $objreader->load($path);
$objsheet = $objexcel->getactivesheet();
$rows = $objsheet->gethighestrow();//行数
/**
* 单元格定义
* b 二级学科代码
* c 二级学科名称
* d 一级学科代码
* e 一级学科名称
* f 学院代码
* g 学院名称
*/
//定义数组
$second_discipline_code = array();
$second_discipline_name = array();
$first_discipline_code = array();
$first_discipline_name = array();
$college_code = array();
$college_name = array();
for($i=1;$i<=$rows;$i++){
$second_discipline_code[] = $objsheet->getcell("b$i")->getformattedvalue();
$second_discipline_name[] = $objsheet->getcell("c$i")->getformattedvalue();
$first_discipline_code[] = $objsheet->getcell("d$i")->getformattedvalue();
$first_discipline_name[] = $objsheet->getcell("e$i")->getformattedvalue();
$college_code[] = $objsheet->getcell("f$i")->getformattedvalue();
$college_name[] = $objsheet->getcell("g$i")->getformattedvalue();
}
//写入数据库
$firstdatamdl = m('datafirstdiscipline');
$seconddatamdl = m('dataseconddiscipline');
$first_discipline_code_backup = $first_discipline_code;//不去重复的备份
$first_discipline_code = array_unique($first_discipline_code);//去重
//一级学科导入
foreach($first_discipline_code as $k=>$v){
$temp['college_id'] = $college_code[$k];
$temp['first_discipline_code'] = $v;
$temp['first_discipline_name'] = $first_discipline_name[$k];
$firstdatamdl->add($temp);
}
//二级学科导入
foreach($second_discipline_code as $k=>$v){
$temp['second_discipline_code'] = $v;
$temp['second_discipline_name'] = $second_discipline_name[$k];
//根据一级学科代码查一级学科id
$first_discipline_code_flag = $first_discipline_code_backup[$k];
$id = $firstdatamdl->where("first_discipline_code = %d",$first_discipline_code_flag)->getfield('first_discipline_id');
$temp['first_discipline_id'] = $id;
$seconddatamdl->add($temp);
}
echo '导入成功完成!';
}catch (phpexcel_exception $e){
echo $e->getmessage();
}catch (thinkexception $e){
echo $e->getmessage();
}catch (exception $e){
echo '程序异常,导入失败!';
}
}