zoukankan      html  css  js  c++  java
  • PHPExcel导出Excel文件

    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();  
    

      

  • 相关阅读:
    一、docker安装CentOS7
    c#使用资源文件完成国际化
    .netcore 读取ansi编码
    省市区数据库
    .netcore2.0发送邮件
    使用py,根据日志记录自动生成周报
    mysql监控每一条执行的sql语句
    根据json生成c#实体类
    使用.net core efcore根据数据库结构自动生成实体类
    winform,同个程序只允许启动一次
  • 原文地址:https://www.cnblogs.com/yttsic/p/3789840.html
Copyright © 2011-2022 走看看