zoukankan      html  css  js  c++  java
  • PHPEXCEL实例-导出EXCEL

     

    PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。

    Php代码  收藏代码
    1.   
    Php代码  收藏代码
      1. <?php  
      2.  /* 
      3.   * 导出EXCEL 
      4.   * 程序:刘兴 
      5.   * 时间:2010-6 
      6.   */  
      7. ?>  
      8. <?php  
      9. require_once("connDB.php");//引入数据库连接参数  
      10. require_once("PExcel/PHPExcel.php");  
      11. ?>  
      12. <?php  
      13. $year=$_POST[year];   
      14. $jd=$_POST[jd];  
      15.   
      16. set_time_limit(900);  
      17. /** Error reporting */  
      18. error_reporting(E_ALL);  
      19. /** PHPExcel */  
      20.   
      21. $sqlxm="select count(*) as  cxm from khxm where lb=1 and isyx=0";      
      22. $resultxm=mysql_query($sqlxmor die("SQL语句执行错误!");  
      23. $rowxm = mysql_fetch_array($resultxm);   
      24. $c1=$rowxm['cxm'];  
      25.   
      26. $sqlxm="select count(*) as  cxm from khxm where lb=2 and isyx=0";      
      27. $resultxm=mysql_query($sqlxmor die("SQL语句执行错误!");  
      28. $rowxm = mysql_fetch_array($resultxm);   
      29. $c2=$rowxm['cxm'];  
      30.   
      31. $sqlxm="select count(*) as  cxm from khxm where lb=3 and isyx=0";      
      32. $resultxm=mysql_query($sqlxmor die("SQL语句执行错误!");  
      33. $rowxm = mysql_fetch_array($resultxm);   
      34. $c3=$rowxm['cxm'];  
      35.   
      36. // Create new PHPExcel object  
      37. $objPHPExcel = new PHPExcel();  
      38. // Set properties  
      39. $objPHPExcel->getProperties()->setCreator("gxds");  
      40. $objPHPExcel->getProperties()->setLastModifiedBy("gxds");  
      41. $objPHPExcel->getProperties()->setTitle("gxdskhtj");  
      42. $objPHPExcel->getProperties()->setSubject("gxdskhtj");  
      43. $objPHPExcel->getProperties()->setDescription("gxdskhtj, gxds.");  
      44. $objPHPExcel->getProperties()->setKeywords("gxdskhtj");  
      45. $objPHPExcel->getProperties()->setCategory("gxtj result file");  
      46. // Add some data  
      47. $noshow = array("year""time""peopleid""bm","kbm");  
      48. $objPHPExcel->setActiveSheetIndex(0);  
      49.       
      50. $objActSheet = $objPHPExcel->getActiveSheet();  
      51. $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(2, 3);  
      52.   
      53.    
      54.                 $db=new mysqli("localhost","ssss","aaaaa","bbbb");    
      55.                 mysqli_query($db,"SET NAMES utf8");                    
      56.                 $result=$db->query("call gxtj($year,$jd)");  
      57.     $i=4;  
      58.     while$row = $result->fetch_array(MYSQLI_ASSOC))  
      59.       {     
      60.        $c=0;  
      61.        $zt=1;  
      62.           $totalfs=100;   
      63.        $tfs=0;   
      64.        $isstart=false;   
      65.        $j=65;  
      66.        $asc_cell=chr($j);  
      67.   
      68.      
      69.            while ($key=key($row)){   
      70.              $ex_title=$asc_cell."3";   
      71.           $ex_cell=$asc_cell.$i;            
      72.        $value=current($row);   
      73.        if (in_array($key$noshow)) {  
      74.              next($row);  
      75.        continue;   
      76.        }  
      77.        if (is_numeric($valueor  is_null($value) ){  
      78.            if (is_null($value)) $value='0';  
      79.         if (!$isstart) {  
      80.            $isstart=true;  
      81.            $startasc=$asc_cell;  
      82.           $endasc=$asc_cell;   
      83.      
      84.   
      85.               }  
      86.        }  
      87.        if ($isstart){  
      88.            $c++;  
      89.         if ($zt==1){  
      90.            if ($c>$c1) {  
      91.             $zt++;   
      92.          $ge=$startasc.'2:'.$endasc.'2';  
      93.          $objActSheet->mergeCells("$ge");   
      94.             $objActSheet->setCellValue($startasc.'2',"岗位职责、效能考核");  
      95.          $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()  
      96. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      97.          $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()  
      98. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);   
      99.                   $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()  
      100.                    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      101.                   $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()  
      102.                   ->getStartColor()->setARGB('0DB0E59FF');   
      103.                    $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')  
      104.                    ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);   
      105.            $objPHPExcel->getActiveSheet()->getStyle($ex_title)  
      106.            ->getFont()->setBold(true);   
      107.             $startasc=$asc_cell;  
      108.          $endasc=$asc_cell;   
      109.          $totalfs-=$tfs;  
      110.          $tfs=0;  
      111.          $c=1;                   
      112.          }  
      113.          else{  
      114.             $endasc=$asc_cell;   
      115.          }  
      116.                               $tfs+=$value;  
      117.             if ($tfs>50) {  
      118.                 $tfs=50;  
      119.             }   
      120.            }                                   
      121.         if ($zt==2){  
      122.             if ($c>$c2) {         
      123.             $zt++;   
      124.          $ge=$startasc.'2:'.$endasc.'2';  
      125.          $objActSheet->mergeCells("$ge");   
      126.                $objActSheet->setCellValue($startasc.'2',"考试");  
      127.          $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()  
      128. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      129.          $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()  
      130. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
      131.                   $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()  
      132.                    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      133.                   $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()  
      134.                   ->getStartColor()->setARGB('0DB0E59FF');  
      135.                    $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')  
      136.                       ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);   
      137.            $objPHPExcel->getActiveSheet()->getStyle($ex_title)  
      138.            ->getFont()->setBold(true);   
      139.           $startasc=$asc_cell;  
      140.          $endasc=$asc_cell;   
      141.          $totalfs-=$tfs;  
      142.          $tfs=0;  
      143.          $c=1;  
      144.         }  
      145.          else{  
      146.             $endasc=$asc_cell;         
      147.          }  
      148.                               $tfs+=$value;  
      149.             if ($tfs>30) {  
      150.                 $tfs=30;  
      151.             }   
      152.            }    
      153.         if ($zt==3){  
      154.             if ($c=$c3) {  
      155.             $zt++;   
      156.          $ge=$startasc.'2:'.$endasc.'2';  
      157.          $objActSheet->mergeCells("$ge");   
      158.             $objActSheet->setCellValue($startasc.'2',"科长考核");  
      159.          $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()  
      160. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      161.          $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()  
      162. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
      163.                   $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()  
      164.                    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      165.                   $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()  
      166.                   ->getStartColor()->setARGB('0DB0E59FF');   
      167.                    $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')  
      168.                    ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);   
      169.            $objPHPExcel->getActiveSheet()->getStyle($ex_title)  
      170.            ->getFont()->setBold(true);                          
      171.            $startasc=$asc_cell;  
      172.          $endasc=$asc_cell;   
      173.          $totalfs-=$tfs;  
      174.          $tfs=0;  
      175.          $c=0;          
      176.          }  
      177.          else{  
      178.             $endasc=$asc_cell;   
      179.            
      180.          }  
      181.                               $tfs+=$value;  
      182.             if ($tfs>20) {  
      183.                 $tfs=20;  
      184.             }   
      185.            }               
      186.        }    
      187.          
      188.        
      189.        $objActSheet->setCellValue($ex_title,$key);  
      190.        $objActSheet->setCellValue($ex_cell,$value);  
      191. //设置单元格宽度         
      192.                 $objActSheet->getColumnDimension($asc_cell)->setWidth(16);   
      193.          
      194.        $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getAlignment()  
      195.        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      196.        $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getAlignment()  
      197.        ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);          
      198.        $objPHPExcel->getActiveSheet()->getStyle($ex_cell)->getAlignment()  
      199.        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      200.        $objPHPExcel->getActiveSheet()->getStyle($ex_cell)->getAlignment()  
      201.        ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);   
      202. //设置填充格式及字体颜色          
      203.        $objPHPExcel->getActiveSheet()->getStyle($ex_cell)  
      204.        ->getNumberFormat()->setFormatCode('#,##0.00');         
      205.        $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getFill()  
      206.        ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      207.        $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getFill()  
      208.        ->getStartColor()->setARGB('0DB0E50A1');  
      209.          
      210.        $objPHPExcel->getActiveSheet()->getStyle($ex_title)  
      211.        ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
      212. //设置字体粗体         
      213.        $objPHPExcel->getActiveSheet()->getStyle($ex_title)  
      214.        ->getFont()->setBold(true);  
      215.   
      216.   
      217.          
      218.                           
      219.        $j++;  
      220.        if ($j>90) {  
      221.                   $j=65;  
      222.                           $asc_cell="AA" ;  
      223.        }  
      224.        elseif (strlen($asc_cell)>1) {  
      225.                $asc_cell=substr($asc_cell,0,strlen($asc_cell)-1).chr($j);          
      226.        }  
      227.        else{  
      228.             $asc_cell=chr($j);   
      229.        }       
      230.           next($row);          
      231.        }  
      232.          
      233.        
      234.      $ge=$asc_cell.'2:'.$asc_cell.'3';  
      235.      $objActSheet->mergeCells("$ge");  
      236.      $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getAlignment()  
      237.      ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      238.      $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getAlignment()  
      239.      ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);   
      240.                     
      241.         $objActSheet->setCellValue($asc_cell.'2',"总分");  
      242.          
      243.        $objActSheet->setCellValue($ex_cell,$totalfs);  
      244. //设置填充格式及字体颜色         
      245.        $objPHPExcel->getActiveSheet()->getStyle($ex_cell)         
      246.        ->getNumberFormat()->setFormatCode('#,##0.00');         
      247.       $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getFill()  
      248.       ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      249.       $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getFill()  
      250.       ->getStartColor()->setARGB('0DB0E59FF');  
      251. //设置字体颜色        
      252.       $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')  
      253.       ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
      254.       $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')  
      255.       ->getFont()->setBold(true);  
      256.                 
      257.        $i++;          
      258.           }    
      259. //标题栏合并单元格,并设置居中  
      260. $objActSheet->setCellValue('A1',$year."年".$jd."季度绩效考核情况统计表");  
      261. $value=$objPHPExcel->getActiveSheet()->getCell('A1')->getValue();;       
      262. $ge='A1:'.$asc_cell.'1';  
      263. $objActSheet->mergeCells("$ge");  
      264. $objActSheet->setCellValue('A1',$value);  
      265. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()  
      266. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      267. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()  
      268. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);   
      269. $objPHPExcel->getActiveSheet()->getStyle('A1')  
      270. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
      271. $objPHPExcel->getActiveSheet()->getStyle('A1')  
      272. ->getFont()->setBold(true);  
      273. $objPHPExcel->getActiveSheet()->getStyle('A1')  
      274. ->getFont()->setSize(26);  
      275.       
      276. //姓名栏合并单元格,并设置居中       
      277. $value=$objPHPExcel->getActiveSheet()->getCell('A3')->getValue();;       
      278. $ge='A2:A3';  
      279. $objActSheet->mergeCells("$ge");  
      280. $objActSheet->setCellValue('A2',$value);  
      281. $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()  
      282. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      283. $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()  
      284. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);   
      285. $objPHPExcel->getActiveSheet()->getStyle('A2')->getFill()  
      286. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      287. $objPHPExcel->getActiveSheet()->getStyle('A2')->getFill()  
      288. ->getStartColor()->setARGB('0DB0E59FF');  
      289. $objPHPExcel->getActiveSheet()->getStyle('A2')  
      290. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
      291. $objPHPExcel->getActiveSheet()->getStyle('A2')  
      292. ->getFont()->setBold(true);  
      293. //科室栏合并单元格,并设置居中  
      294. $value=$objPHPExcel->getActiveSheet()->getCell('B3')->getValue();;       
      295. $ge='B2:B3';  
      296. $objActSheet->mergeCells("$ge");  
      297. $objActSheet->setCellValue('B2',$value);  
      298. $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()  
      299. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
      300. $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()  
      301. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
      302. $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()  
      303. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);         
      304. $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()  
      305. ->getStartColor()->setARGB('0DB0E59FF');  
      306. $objPHPExcel->getActiveSheet()->getStyle('B2')  
      307. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
      308. $objPHPExcel->getActiveSheet()->getStyle('B2')  
      309. ->getFont()->setBold(true);  
      310.   
      311.   
      312. //单元格边框及颜色  
      313. $objPHPExcel->getActiveSheet()->getStyle('A2:'.$ex_cell)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);  
      314. $objPHPExcel->getActiveSheet()->getStyle('A2:'.$ex_cell)->getBorders()->getAllBorders()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
      315.   
      316. // sheet名称  
      317. $objPHPExcel->getActiveSheet()->setTitle('绩效考核统计');  
      318. // Set active sheet index to the first sheet, so Excel opens this as the first sheet  
      319. $objPHPExcel->setActiveSheetIndex(0);  
      320. // Redirect output to a clients web browser (Excel5)通知下载  
      321. $fn="gxtj-$year-$jd.xls";  
      322. header('Content-Type: application/vnd.ms-excel; charset=utf-8');  
      323. header("Content-Disposition: attachment;filename=$fn");  
      324. header('Cache-Control: max-age=0');  
      325. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel'Excel5');  
      326. $objWriter->save('php://output');  
      327. exit;  
      328. ?> 
  • 相关阅读:
    Linux VPS新硬盘分区与挂载教程
    全程图解 手把手教您开启windows终端服务
    解决IE apk变成zip:Android 手机应用程序文件下载服务器Nginx+Tomcat配置解决方法
    Nginx 配置文件详解
    MySQL新建用户,授权,删除用户,修改密码
    解决IE apk变成zip:Android 手机应用程序文件下载服务器 配置解决方法
    CentOS 6.4 32位系统 LAMP(Apache+MySQL+PHP)安装步骤
    yum被锁Another app is currently holding the yum lock; waiting for it to exit...
    CentOS 6.4下编译安装MySQL 5.6.14
    Oracle函数大全
  • 原文地址:https://www.cnblogs.com/guolanzhu/p/3518418.html
Copyright © 2011-2022 走看看