现在的位置: 首页 > 综合 > 正文

在Yii框架中使用PHPExcel扩展从数据库导出excel文件功能的实现

2014年02月15日 ⁄ 综合 ⁄ 共 2492字 ⁄ 字号 评论关闭

1.下载最新的PHPExcel组件https://github.com/PHPOffice/PHPExcel


2.将以下两个文件解压至PHPExcel文件夹下并放入extension文件夹下

如图所示

3.在main.php主配置文件下,添加如下代码:

4.在控制器下写如下代码:

  1. /** 
  2. * 导出EXCEL 
  3. */  
  4. public function actionExport(){  
  5. $objPHPExcel = new PHPExcel();  
  6. $sql = "select * from aff";  
  7. $result = Yii::app()->db->createCommand($sql);  
  8. $query = $result -> queryAll();  
  9. //print_r($query);  
  10.   
  11. $objPHPExcel->setActiveSheetIndex(0)  
  12. ->setCellValue('A1','会员名称')  
  13. ->setCellValue('B1','会员ID')  
  14. ->setCellValue('C1','收款银行')  
  15. ->setCellValue('D1','收款账号')  
  16. ->setCellValue('E1','收款人')  
  17. ->setCellValue('F1','实发费用')  
  18. ->setCellValue('G1','状态')  
  19. ->setCellValue('H1','结算日期');  
  20. $i=2;  
  21. foreach($query as $v){  
  22. //print_r($v);  
  23. $objPHPExcel->setActiveSheetIndex(0)  
  24. ->setCellValue('A'.$i,$v[username])  
  25. ->setCellValue('B'.$i,$v[userid])  
  26. ->setCellValue('C'.$i,$v[bank])  
  27. ->setCellValue('D'.$i,$v[accountnum])  
  28. ->setCellValue('E'.$i,$v[realname])  
  29. ->setCellValue('F'.$i,$v[amount])  
  30. ->setCellValue('G'.$i,$v[confirm])  
  31. ->setCellValue('H'.$i,$v[remittancetime]);  
  32. //设置填充颜色  
  33. $objPHPExcel->getActiveSheet()->getStyle('F'.$i)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);  
  34. $objPHPExcel->getActiveSheet()->getStyle('F'.$i)->getFill()->getStartColor()->setARGB('FFFFFF');  
  35. //设置字体靠左  
  36. $objPHPExcel->getActiveSheet()->getStyle('A'.$i.':H'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);  
  37. $i++;  
  38. }  
  39. //加粗字体  
  40. $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setBold(true);  
  41. //字体靠左  
  42. $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);  
  43. //设置每列宽度  
  44. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);  
  45. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);  
  46. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);  
  47. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);  
  48. $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);  
  49. $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);  
  50. $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10);  
  51. $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);  
  52. //输出  
  53. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel'Excel5');  
  54. $filename="outexcel.xls";  
  55. header('Content-Type: application/vnd.ms-excel');  
  56. header('Content-Disposition: attachment;filename="'.$filename.'"');  
  57. header('Cache-Control: max-age=0');  
  58. $objWriter->save('php://output');  

抱歉!评论已关闭.