ThinkPHP中利用PHPEXCEL进行excel导出

Posted on 2013-07-31 11:55  php小弟  阅读(696)  评论(0)    收藏  举报

关于使用PHPEXCEL,首先需要把下载好的文件更名为Excel(PHPExcel.php  PHPExcel文件)放入ThinkPHP包的Vendor文件夹中,算是导入了一个新类。

其次就是关于导出函数的使用,具体代码如下所示:

 public function imorder()
      {     
        $list = $_SESSION['depart'];  //通过SESSION传递过来的已经在数据库中查询出来的数据集。
       $num=count($list);  // 对查询出来的数据进行统计。
        error_reporting(E_ALL);
        ini_set('display_errors', TRUE);
        ini_set('display_startup_errors', TRUE);
  
 
   Vendor('Excel.PHPExcel');
   Vendor('Excel.PHPExcel.IOFactory');
   Vendor('Excel.PHPExcel.Reader.Excel5');
        $objPHPExcel = new PHPExcel();
        $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                     ->setLastModifiedBy("Maarten Balliauw")
                                     ->setTitle("Office 2007 XLSX Test Document")
                                     ->setSubject("Office 2007 XLSX Test Document")
                                     ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
                                     ->setKeywords("office 2007 openxml php")
                                     ->setCategory("Test result file");  
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A1', '学工号')   //确定导出的表中的每一列的名称。
                    ->setCellValue('B1', '姓名')
                    ->setCellValue('C1', '班级名称')
     ->setCellValue('D1', '消费日期')
     ->setCellValue('E1', '消费时间')
        ->setCellValue('F1', '消费年度')
     ->setCellValue('G1', '消费金额')
        ->setCellValue('H1', '余额')
     ->setCellValue('I1', '操作员');
  for ($i=0; $i < $num; $i++) {
   $n=$i+2;
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A'.$n, $list[$i]['STUEMPNO'])   //每一列对应的数值。
                    ->setCellValue('B'.$n, $list[$i]['CUSTNAME'])
                    ->setCellValue('C'.$n, $list[$i]['CLASSNAME'])
     ->setCellValue('D'.$n, $list[$i]['XFDATE'])
     ->setCellValue('E'.$n, $list[$i]['XFTIME'])
     ->setCellValue('F'.$n, $list[$i]['NDNAME'])
     ->setCellValue('G'.$n, $list[$i]['JE'])
        ->setCellValue('H'.$n, $list[$i]['YE'])
     ->setCellValue('I'.$n, $list[$i]['FIRSTNAME']);
                 }
        $objPHPExcel->getActiveSheet()->setTitle('title');
        $objPHPExcel->setActiveSheetIndex(0);
        spl_autoload_register(array('Think','autoload'));
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="文件名.xls"');  //导出excel文件的名字是已经定义过的。
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
      }

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3