public function actionExam_import()
{
Yii::import("application.vendors.*");
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel2007.php';
$schoolid = $this->school_id;
$this->menu=array('r'=>6,'t'=>7);
$school_model = School::model()->find('id=:id',array(':id'=>$this->school_id));
if(!$school_model){
$this->halt('操作失败','操作失败!学校信息获取失败');
}
$objExcel = new PHPExcel();
$strArr = array();
$nameArr = array();
$tempArr =array();
$examArr = array();
$guardianArr = array();
if($_POST['leadExcel'] == "true")
{
$filename = $_FILES['exam_file']['name'];
$tmp_path = $_FILES['exam_file']['tmp_name'];
$path_name = pathinfo($filename);
$extension = $path_name['extension'];
//echo $extension;exit;
if($extension != 'xls'){
$this->message('上传文件类型错误','请按照正确模板(成绩导入模板.xls)进行导入',false,$this->createUrl('Message/exam_import'));
return;
}
$objReader = PHPExcel_IOFactory::createReader('Excel5');//2007
$objPHPExcel =$objReader->load($tmp_path);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); //取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数
for($j=2;$j<=$highestRow;$j++){
$str = ''; $exam = ''; //从第一行开始读取数据
for($k='A';$k<=$highestColumn;$k++){ //从A列读取数据
$str.='<td>'.$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'</td>';//读取单元格
$exam.=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().' ';
}
$tempArr = explode(' ', $exam);
array_push($strArr,$str);
$name = $objPHPExcel->getActiveSheet()->getCell("A$j")->getValue();
array_push($nameArr,$name);
array_push($examArr,$tempArr);
}
foreach ($examArr as $k => &$v){
$v[2]='语文:'.$v[2];
$v[3]='数学:'.$v[3];
$v[4]='英语:'.$v[4];
$v[5]='物理:'.$v[5];
$v[6]='化学:'.$v[6];
$v[7]='生物:'.$v[7];
$v[8]='政治:'.$v[8];
$v[9]='历史:'.$v[9];
$v[10]='地理:'.$v[10];
$v[11]='总分:'.$v[11];
$v[12]='年级排名:'.$v[12];
$v[13]='班级排名:'.$v[13];
}
foreach ($examArr as $t=>$name) {
$guardianArr[$t]['mobile']=Yii::app()->db->createCommand("select mobile from guardian where id in(select guardian_id from student_guardian where student_id in (select id from student where name='$name[0]'))")->queryAll();
$guardianArr[$t]['exam'] = implode(',', $name);
}
$guardianStr=serialize($guardianArr);
$redis_client = new RedisClient();
$redis_client->save_exam_import_data($guardianStr);
}
$this->render('exam_import',array(
'school_model'=>$school_model,
'student_exam'=>$strArr
));
{
Yii::import("application.vendors.*");
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel2007.php';
$schoolid = $this->school_id;
$this->menu=array('r'=>6,'t'=>7);
$school_model = School::model()->find('id=:id',array(':id'=>$this->school_id));
if(!$school_model){
$this->halt('操作失败','操作失败!学校信息获取失败');
}
$objExcel = new PHPExcel();
$strArr = array();
$nameArr = array();
$tempArr =array();
$examArr = array();
$guardianArr = array();
if($_POST['leadExcel'] == "true")
{
$filename = $_FILES['exam_file']['name'];
$tmp_path = $_FILES['exam_file']['tmp_name'];
$path_name = pathinfo($filename);
$extension = $path_name['extension'];
//echo $extension;exit;
if($extension != 'xls'){
$this->message('上传文件类型错误','请按照正确模板(成绩导入模板.xls)进行导入',false,$this->createUrl('Message/exam_import'));
return;
}
$objReader = PHPExcel_IOFactory::createReader('Excel5');//2007
$objPHPExcel =$objReader->load($tmp_path);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); //取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数
for($j=2;$j<=$highestRow;$j++){
$str = ''; $exam = ''; //从第一行开始读取数据
for($k='A';$k<=$highestColumn;$k++){ //从A列读取数据
$str.='<td>'.$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'</td>';//读取单元格
$exam.=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().' ';
}
$tempArr = explode(' ', $exam);
array_push($strArr,$str);
$name = $objPHPExcel->getActiveSheet()->getCell("A$j")->getValue();
array_push($nameArr,$name);
array_push($examArr,$tempArr);
}
foreach ($examArr as $k => &$v){
$v[2]='语文:'.$v[2];
$v[3]='数学:'.$v[3];
$v[4]='英语:'.$v[4];
$v[5]='物理:'.$v[5];
$v[6]='化学:'.$v[6];
$v[7]='生物:'.$v[7];
$v[8]='政治:'.$v[8];
$v[9]='历史:'.$v[9];
$v[10]='地理:'.$v[10];
$v[11]='总分:'.$v[11];
$v[12]='年级排名:'.$v[12];
$v[13]='班级排名:'.$v[13];
}
foreach ($examArr as $t=>$name) {
$guardianArr[$t]['mobile']=Yii::app()->db->createCommand("select mobile from guardian where id in(select guardian_id from student_guardian where student_id in (select id from student where name='$name[0]'))")->queryAll();
$guardianArr[$t]['exam'] = implode(',', $name);
}
$guardianStr=serialize($guardianArr);
$redis_client = new RedisClient();
$redis_client->save_exam_import_data($guardianStr);
}
$this->render('exam_import',array(
'school_model'=>$school_model,
'student_exam'=>$strArr
));