当前位置:首页 > PHP教程 > php应用 > 列表

PHP 导出Excel示例分享

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-03 13:02:03 浏览: 评论:0 

在开发一个商城网站的时候,客户需要一个导出报表的功能,我使用PHPExcel来实现这个功能。

下载PHPExcel_1.8.0_doc.zip http://phpexcel.codeplex.com/,将解压后的文件夹里的Classes上传到网站的根目录下,Classes目录内的内容如下:

导出文件Excel.php

require_once dirname(__FILE__).'/Classes/PHPExcel.php';//引入PHPExcel

.....此处略去从数据库获取数据的过程,$a为需要导出的数组......

  1. $numArr = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ'); 
  2. // Create new PHPExcel object 
  3. $objPHPExcel = new PHPExcel(); 
  4.  
  5. $arr = array('订单号','下单时间','城市','地区''客户名称''收货人''联系电话''收货地址''ERP客户名称''物流系统客户名称''活动项目'
  6.  '品牌''型号''颜色''物流系统型号''订货量''单价''代收货款''红包''价保返利''运费''实收金额''付款方式''订单来源'
  7.  '上游厂商''是否在仓''快递面单号''订单状态''确认时间''末次状态确认时间''描述''对应业务''对应客服''商家留言''下单摘要'
  8.  '业务员''联系方式'); 
  9. // 输出标题 
  10. echo date('H:i:s') , " Add some data" , EOL; 
  11. //设置换行 
  12. $objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setWrapText(true); 
  13. $objPHPExcel->getActiveSheet()->getStyle('Y')->getAlignment()->setWrapText(true); 
  14. //设置相应列的宽度 
  15. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(15); 
  16. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20); 
  17. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(15); 
  18. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(40); 
  19. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('I')->setWidth(15); 
  20. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('J')->setWidth(15); 
  21. //输出第一行 
  22. $objPHPExcel->setActiveSheetIndex(0) 
  23.    ->setCellValue('A1'$arr[0]) 
  24.  ->setCellValue('B1'$arr[1]) 
  25.  ->setCellValue('C1'$arr[2]) 
  26.  ->setCellValue('D1'$arr[3]) 
  27.  ->setCellValue('E1'$arr[4]) 
  28.  ->setCellValue('F1'$arr[5]) 
  29.  ->setCellValue('G1'$arr[6]) 
  30.  ->setCellValue('H1'$arr[7]) 
  31.  ->setCellValue('I1'$arr[8]) 
  32.  ->setCellValue('J1'$arr[9]) 
  33.    ->setCellValue('K1'$arr[10]) 
  34.    ->setCellValue('L1'$arr[11]); 
  35.  
  36.  
  37. //输出内容 
  38. for($i=0;$i<count($a);$i++){ 
  39.  $objPHPExcel->setActiveSheetIndex(0) 
  40.   ->setCellValue($numArr[0].($i+2), $a[$i]['order_sn']) 
  41.   ->setCellValue($numArr[1].($i+2), $a[$i]['add_time']) 
  42.   ->setCellValue($numArr[2].($i+2), $a[$i]['city']) 
  43.   ->setCellValue($numArr[3].($i+2), $a[$i]['region_name']) 
  44.   ->setCellValue($numArr[4].($i+2), $a[$i]['company']) 
  45.   ->setCellValue($numArr[5].($i+2), $a[$i]['consignee']) 
  46.   ->setCellValue($numArr[6].($i+2), $a[$i]['mobile']) 
  47.   ->setCellValue($numArr[7].($i+2), $a[$i]['address']) 
  48.   ->setCellValue($numArr[8].($i+2), ''
  49.   ->setCellValue($numArr[9].($i+2), ''
  50.   ->setCellValue($numArr[10].($i+2), ''
  51.   ->setCellValue($numArr[11].($i+2), $a[$i]['brand_name']); 
  52.  
  53. // Rename worksheet 
  54. echo date('H:i:s') , " Rename worksheet" , EOL; 
  55. $dirName = date("Ymd");//目录名 
  56. $fileName = date("YmdHis");//文件名 
  57. $objPHPExcel->getActiveSheet()->setTitle($fileName); 
  58.  
  59.  
  60. // Set active sheet index to the first sheet, so Excel opens this as the first sheet 
  61. $objPHPExcel->setActiveSheetIndex(0); 
  62.  
  63.  
  64. // Save Excel 2007 file 
  65. echo date('H:i:s') , " Write to Excel2007 format" , EOL; 
  66. $callStartTime = microtime(true); 
  67. if(!opendir('../excel/'.$dirName)){ 
  68.  mkdir('../excel/'.$dirName); 
  69. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel'Excel2007'); 
  70. $objWriter->save('../excel/'.$dirName.'/'.$fileName.'.xlsx'); 
  71.  
  72. $end = getCurrentTime(); 
  73. $spend = $end-$begin
  74. if ($spend > 30){ 
  75.  echo '<script>if(confirm("执行超时!")){ window.history.back(-1);}</script>'
  76.  exit
  77. header('Location:http://'.$_SERVER['HTTP_HOST'].'/excel/'.$dirName.'/'.$fileName.'.xlsx'); 

Tags: PHP导出Excel

分享到: