分享

phpexcel导出excel文件

 滕王阁岳阳楼 2014-06-15
  • error_reporting(0);  
  •         require_once 'phpexcel/PHPExcel.php';  
  •         require_once 'phpexcel/PHPExcel/IOFactory.php';  
  •   
  •         $objPHPExcel = new PHPExcel();  
  •         $objPHPExcel->getProperties()->setCreator("BillHong")  
  •                                      ->setLastModifiedBy("BillHong")//创建人                                     ->setTitle("export to Borwser")//标题  
  •                                      ->setSubject("export to Borwser")//题目  
  •                                      ->setDescription("export to Borwser")//描述  
  •                                      ->setKeywords("export to Borwser")//关键字  
  •                                      ->setCategory("BillHong export to Borwser");//种类  
  •   
  •         /*设置单元格的标题*/  
  •         $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:G1');//合并单元格  
  •         $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '杭州佳和电气有限公司南京分公司用电量周报表');  
  •         //设置font  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getFont()->setSize(14);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getFont()->setBold(true);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
  •         //水平居中===垂直居中  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
  •           
  •         $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A2:G2');//合并单元格  
  •         $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', '计量时间段2012-03-18 00:00:00--2012-03-25 00:00:00');  
  •         //设置font  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getFont()->setSize(10);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
  •         //水平居中===垂直居中  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getStyle('A2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
  •         /*设置特别表格的宽度*/  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(5);//表示设置A这一列的宽度,以下一样  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(40);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(8);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(5);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(20);  
  •         $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(10);  
  •         /*设置第3行的内容居中,字体颜色等*/  
  •         for ($i = 0; $i <= 6; $i++)  
  •         {  
  •             $n = 65;  
  •             $col = chr($n+$i).'3';  
  •             $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getFont()->setSize(11);  
  •             $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);  
  •             $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  
  •             $objPHPExcel->setActiveSheetIndex(0)->getStyle($col)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
  •         }  
  •           
  •           
  •         // 以下实现生成Excel单元格坐标。感谢php缘来缘去的Q群大力技术支持  
  •         $abc          = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';  
  •         $firstChar      = 0;  
  •         $flag         = false;        // 是否已经变成AA模式。  
  •         $d              = 65;  
  •           
  •         $titleLength = count($titles[1]);  
  •   
  •         for ($i = 0; $i < $titleLength; $i++)  
  •         {  
  •             // 当已经超过'Z'字母的时候。  
  •             if ($d == 91)  
  •             {  
  •                 $d = 65;                    // 又将$d设置为初始化值65。  
  •                 if ($flag) {  
  •                     $firstChar++;  
  •                     $offset = $abc{$firstChar} . chr($d);  
  •                 } else {  
  •                     $flag     = true;  
  •                     $offset = $abc{$firstChar} . chr($d);  
  •                 }  
  •             }  
  •   
  •             // 当循环没有超过'Z'的时候。  
  •             else {  
  •                 if ($flag) {  
  •                     $offset = $abc{$firstChar} . chr($d);  
  •                 } else {  
  •                     $offset = chr($d);  
  •                 }  
  •             }  
  •   
  •             // 设置单元格的值。  
  •             $offsets = $offset . '3';  
  •             $objPHPExcel->setActiveSheetIndex(0)  
  •                         ->setCellValue($offsets, $titles[1][$i]);  
  •             $d++;  
  •         }  
  •         // 以下按照对应坐标将值放进去。以下实现生成Excel单元格坐标。  
  •         $k                 = 4;  
  •         foreach ($rowset as $rows)  
  •         {  
  •             $abc_              = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';  
  •             $firstChar_     = 0;  
  •             $flag_             = false;  
  •             $d_             = 65;  
  •               
  •             $rowsetLength     = count($rowset);  
  •               
  •             // 回调函数。  
  •             if($backfunc) {  
  •                 $rows = $backfunc($rows);  
  •             }  
  •   
  •             $rowsLength = count($rows);  
  •             for ($a = 0; $a < $rowsLength; $a++)  
  •             {  
  •                 // 当已经超过'Z'字母的时候。  
  •                 if ($d_ == 91)  
  •                 {  
  •                     $d_ = 65;                    // 又将$d设置为初始化值65。  
  •                     if ($flag_) {  
  •                         $firstChar_++;  
  •                         $offset_ = $abc_{$firstChar_} . chr($d_);  
  •                     } else {  
  •                         $flag_     = true;  
  •                         $offset_ = $abc_{$firstChar_} . chr($d_);  
  •                     }  
  •                 }  
  •       
  •                 // 当循环没有超过'Z'的时候。  
  •                 else {  
  •                     if ($flag_) {  
  •                         $offset_ = $abc_{$firstChar_} . chr($d_);  
  •                     } else {  
  •                         $offset_ = chr($d_);  
  •                     }  
  •                 }  
  •                   
  •                 $offsets_ = $offset_ . $k;  
  •                 $objPHPExcel->setActiveSheetIndex(0)  
  •                             ->setCellValue($offsets_, $rows[$a]);  
  •                 $d_++;  
  •             }  
  •             $k++;  
  •         }  
  •   
  •         $objPHPExcel->getActiveSheet()->setTitle('zenlove test');  
  •         $objPHPExcel->setActiveSheetIndex(0);  
  •         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  
  •         header("Content-Disposition:attachment;filename=$filename.xls");  
  •         header("Content-Type:application/octet-stream");  
  •         header("Content-Transfer-Encoding:binary");  
  •         header("Pragma:no-cache");  
  •         $objWriter->save('php://output');  
  •         exit();  
    • 本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多