莫让这世间的庸俗扰了清修,尽管三观已被腐蚀,但未来总是光明的。

首先下载PHPExcel,这个自己下


如果你是用的框架,可以参考下面的教程

PHPExcel上传到 libaries 文件夹后,给予755的权限

在控制器中直接使用下面的代码

                $this->load->library('PHPExcel');//加载excel文件导出库
				$advisor_id = XXXXXX;//这个是我自己的数据
				$advisor = XXXXXXXXXXX;//这个是我的获取的数据
				$students = XXXXXXXXXXXXXX;//这个是我自己的数据
				$objPHPExcel = new PHPExcel();
				/*以下是一些设置 ,什么作者  标题啊之类的,这个不用改都行*/
				 $objPHPExcel->getProperties()->setCreator("system")
									   ->setLastModifiedBy("system")
									   ->setTitle("Student Advising Center Title")
									   ->setSubject("Student Advising Center Subject")
									   ->setDescription("student_status ,1为老师指定,2为随机分配,0为自由选择")
									   ->setKeywords("Keywords")
									  ->setCategory("Category");
				 /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
				 $objPHPExcel->setActiveSheetIndex(0)
								  ->setCellValue('A1', 'Student ID')    
								  ->setCellValue('B1', 'Student EN')
								  ->setCellValue('C1', 'Student CN')
								  ->setCellValue('D1', 'Student Email')
								  ->setCellValue('E1', 'Stduent Major')
								  ->setCellValue('F1', 'Student Status');//这个上面是设置表头,第一行的东西
				foreach($students as $k => $s){//循环输出数据
					 $num=$k+2;
					 $objPHPExcel->setActiveSheetIndex(0)
								  ->setCellValue('A'.$num, $s->student_id)    
								  ->setCellValue('B'.$num, $s->student_englishname)
								  ->setCellValue('C'.$num, $s->student_name)
								  ->setCellValue('D'.$num, $s->student_mail.'@sjtu.edu.cn')
								  ->setCellValue('E'.$num, $s->student_major)
								  ->setCellValue('F'.$num, $s->student_status);
				};//循环输出数据结束
				$objPHPExcel->getActiveSheet()->setTitle('User');
				$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);//设置宽度
				$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(18);
				$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
				$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(28);
				$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(13);
				$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(13);//设置宽度结束
				$objPHPExcel->setActiveSheetIndex(0);
				ob_end_clean();//清除缓冲区,避免乱码
				header("Pragma: public");
				header("Expires: 0");
				header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
				header("Content-Type:application/force-download");
				header("Content-Type:application/vnd.ms-execl");
				header("Content-Type:application/octet-stream");
				header("Content-Type:application/download");;
				header('Content-Disposition:attachment;filename="Advising '.$advisor['advisor_enname'].'.xls"');
				header("Content-Transfer-Encoding:binary");
				 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
				 $objWriter->save('php://output');
				 exit;