程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHPExcel導出Excel文件

PHPExcel導出Excel文件

編輯:關於PHP編程

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

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved