我在Codeigniter中的PHPExcel中遇到问题。我想将数据导出到excel文件。它有10个数据,如下所示:在Codeigniter循环数据阵列中PHPExcel导出为excel
-----------------------------------------------
No | NIM | Mahasiswa | Benar | Salah | Nilai
-----------------------------------------------
1 | G1A007001 | Hikmah Faridah | 16 | 84 | 16
-----------------------------------------------
.. | ..........| .............. |....|....|....
-----------------------------------------------
10 | K1A006001 | Erni Noviani | 0 | 5 | 0
-----------------------------------------------
这里是我的控制器:
public function export(){
$id=$this->uri->segment(3);
$this->load->model('m_user');
$mhs=$this->m_user->edit_sesi($id);
foreach($mhs->result() as $m):
$nama_sesi=$m->nama_sesi;
$nama_blok=$m->nama_blok;
$tgl=$m->tgl;
endforeach;
$nilai=$this->m_user->lihat_nilai_sesi($id);
$heading=array('No','NIM','Mahasiswa','Benar','Salah','Nilai');
$this->load->library('PHPExcel');
//Create a new Object
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle($nama_sesi);
//Loop Heading
$rowNumberH = 1;
$colH = 'A';
foreach($heading as $h){
$objPHPExcel->getActiveSheet()->setCellValue($colH.$rowNumberH,$h);
$colH++;
}
//Loop Result
$totn=$nilai->num_rows();
$no=1;
for($i=2;$i<=$totn+1;$i++){
foreach($nilai->result() as $n):
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$no);
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i,$n->nim);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$i,$n->nama);
$objPHPExcel->getActiveSheet()->setCellValue('D'.$i,$n->benar);
$objPHPExcel->getActiveSheet()->setCellValue('E'.$i,$n->salah);
$objPHPExcel->getActiveSheet()->setCellValue('F'.$i,$n->nilai);
endforeach;
$no++;
}
//Freeze pane
$objPHPExcel->getActiveSheet()->freezePane('A2');
//Save as an Excel BIFF (xls) file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Nilai-'.$nama_sesi.'-'.$nama_blok.'-'.$tgl.'.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit();
}
这是我的模型:
function lihat_nilai_sesi($id){
$this->db->select('*');
$this->db->from('hasil');
$this->db->join('mahasiswa','mahasiswa.username=hasil.username','left');
$this->db->order_by('mahasiswa.nim','asc');
$this->db->where('id_sesi',$id);
$query=$this->db->get();
return $query;
}
和Excel的结果文件是这样的:
---------------------------------------------
No | NIM | Mahasiswa | Benar | Salah | Nilai
---------------------------------------------
1 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
2 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
3 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
4 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
5 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
6 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
7 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
8 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
9 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
10 | K1A006001 | Erni Noviani | 0 | 5 | 0
---------------------------------------------
结果只显示10具有相同数据/人员的行。我认为循环不起作用。任何身体帮助我?
感谢您的关注
insire在foreach加上'的var_dump($ N) '看看它的预期结果 – 2014-10-02 03:39:57