如何使用CodeIgniter从HTML表创建Excel电子表格

时间:2015-09-07 07:26:18

标签: php excel codeigniter codeigniter-2 phpexcel

我已经在View上创建了表,现在我想使用CodeIgniter将它报告给Excel(PHPExcel),我试图找到一个简单的报告系统,到目前为止我的脚本在控制器上:

  function excel(){
    $data['bf']=$this->report->branch();


    $tahun = $this->input->post('tahun');
    $branch= $this->input->post('branch');

    /*$data['data'] = $this->report->getdata($tahun);
    $data['data2'] = $this->report->getdata($tahun);
     // $data['bfb'] = $this->report->getdata($tahun,$branch); */
    $data['show'] = $this->report->show();

    $data['bal'] = $this->report->getbal($tahun);
    $data['bdg'] = $this->report->getbdg($tahun);
      $data['bgr'] = $this->report->getbgr($tahun);
      $data['bjm'] = $this->report->getbjm($tahun);
      $data['bkp'] = $this->report->getbkp($tahun);
      $data['bks'] = $this->report->getbks($tahun);
      $data['bnk'] = $this->report->getbnk($tahun);
      $data['crb'] = $this->report->getcrb($tahun);
      $data['jkt'] = $this->report->getjkt($tahun);
      $data['jktm'] = $this->report->getjktm($tahun);
      $data['jmb'] = $this->report->getjmb($tahun);
      $data['knd'] = $this->report->getknd($tahun);
      $data['lpg'] = $this->report->getlpg($tahun);
      $data['mad'] = $this->report->getmad($tahun);
       $data['mdn'] = $this->report->getmdn($tahun);
      $data['mks'] = $this->report->getmks($tahun);
      $data['mlg'] = $this->report->getmlg($tahun);
        $data['pkb'] = $this->report->getpkb($tahun);
      $data['plb'] = $this->report->getplb($tahun);
      $data['pnt'] = $this->report->getpnt($tahun);


  $html = $this->load->view('report/report', $data, true);


$tmpfile = time().'.html';
file_put_contents($tmpfile, $html);


$reader = new PHPExcel_Reader_HTML; 
$content = $reader->load($tmpfile); 

// Pass to writer and output as needed
$objWriter = PHPExcel_IOFactory::createWriter($content, 'Excel5');
$objWriter->save('excelfile.xls');


unlink($tmpfile);

    }

当我使用该脚本时,我无法下载它,请更正我的脚本,谢谢

2 个答案:

答案 0 :(得分:1)

看看我的演示项目,我在Codeigniter中做了excel导出 https://github.com/eboominathan/Basic-CRUD-in-Codeigniter

答案 1 :(得分:0)

像这样?

function excel(){

   $CI->load->library('Excel'); 
    $data['bf']=$this->report->branch();


    $tahun = $this->input->post('tahun');
    $branch= $this->input->post('branch');

    /*$data['data'] = $this->report->getdata($tahun);
    $data['data2'] = $this->report->getdata($tahun);
     // $data['bfb'] = $this->report->getdata($tahun,$branch); */
    $data['show'] = $this->report->show();

    $data['bal'] = $this->report->getbal($tahun);
    $data['bdg'] = $this->report->getbdg($tahun);
      $data['bgr'] = $this->report->getbgr($tahun);
      $data['bjm'] = $this->report->getbjm($tahun);
      $data['bkp'] = $this->report->getbkp($tahun);
      $data['bks'] = $this->report->getbks($tahun);
      $data['bnk'] = $this->report->getbnk($tahun);
      $data['crb'] = $this->report->getcrb($tahun);
      $data['jkt'] = $this->report->getjkt($tahun);
      $data['jktm'] = $this->report->getjktm($tahun);
      $data['jmb'] = $this->report->getjmb($tahun);
      $data['knd'] = $this->report->getknd($tahun);
      $data['lpg'] = $this->report->getlpg($tahun);
      $data['mad'] = $this->report->getmad($tahun);
       $data['mdn'] = $this->report->getmdn($tahun);
      $data['mks'] = $this->report->getmks($tahun);
      $data['mlg'] = $this->report->getmlg($tahun);
        $data['pkb'] = $this->report->getpkb($tahun);
      $data['plb'] = $this->report->getplb($tahun);
      $data['pnt'] = $this->report->getpnt($tahun);


  $html = $this->load->view('report/report', $data, true);
  $filename = 'Report Data Actual vs Target Branch '.date('Y-m-d').'.xls';                        //save our workbook as this file name
   header('Content-Type: application/vnd.ms-excel'); //mime type
   header('Content-Disposition: attachment;filename="' . $filename . '"'); //tell browser what's the file name
   header('Cache-Control: max-age=0'); //no cache
   //save it to Excel5 format (excel 2003 .XLS file), change this to 'Excel2007' (and adjust the filename extension, also the header mime type)
   //if you want to save it as .XLSX Excel 2007 format
   $objWriter = PHPExcel_IOFactory::createWriter($CI->excel, 'Excel5');
   //force user to download the Excel file without writing it to server's HD
   $objWriter->save('php://output');