PHP導出excel表格(可多表)SQL

function active($xlsName='', $xlsCell=array(), $xlsModel=''){  
	    // 合計人數
	    // $fileName = "國慶活動";
	    // $headArr = array('ID', '姓名','電話','所屬班級','成功人數','確認簽字');
	    // $grade = M('active_friend');
		// $join = "".C('DB_PREFIX').'active_friends as b on b.f_id =a.id';
		// $data =$grade->alias('a')->field("a.id,a.name,a.phone,a.class,count(b.f_id)")
        //->join($join)->where(array("b.status"=>1))
        //->DISTINCT(a.name)->group("b.f_id")->select();

	    // $this->getExcel($fileName, $headArr, $data);
	
	 // 合計人數
	   $fileName = "國慶活動";
	   $headArr = array( '姓名','性別','年齡','手機號','學歷','推薦人','推薦人電話');
	   $grade = M('active_friends');
	   $join = "".C('DB_PREFIX').'active_friend as b on a.f_id =b.id';
	   $data =$grade->alias('a')
       ->field("a.name,a.sex,a.age,a.phone,a.edu,b.name as t_name,b.phone as t_phone")
       ->join($join)->select();

	   $this->getExcel($fileName, $headArr, $data);
	
	}

 

	
	private function getExcel($fileName, $headArr, $data){
	 	//導入PHPExcel類庫,因爲PHPExcel沒有用命名空間,只能inport導入
            vendor('PHPExcel.PHPExcel');
            $date = date("Y_m_d", time());
            $fileName .= "_{$date}.xls";
 
        //創建PHPExcel對象,注意,不能少了\
            $objPHPExcel = new \PHPExcel();
            $objProps = $objPHPExcel->getProperties();
	
        //設置表頭
            $key = 0;
        //print_r($headArr);exit;
            foreach ($headArr as $v) {
        //將字母命名改爲數字命名,
          $colum = \PHPExcel_Cell::stringFromColumnIndex($key);
          $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
          $key += 1;
    }
    
            $column = 2;
            $objActSheet = $objPHPExcel->getActiveSheet();
 
    //print_r($data);exit;
        foreach ($data as $key => $rows) { //行寫入
        $span = 0;
        foreach ($rows as $keyName => $value) {// 列寫入
        //將字母命名改爲數字命名,
            $j = \PHPExcel_Cell::stringFromColumnIndex($span);
            $objActSheet->setCellValue($j . $column, $value);
            $span++;
        }
        $column++;
    }
 
    $fileName = iconv("utf-8", "gb2312", $fileName);
 
    //重命名錶
    //$objPHPExcel->getActiveSheet()->setTitle('wx');
    //設置活動單指數到第一個表,所以Excel打開這是第一個表
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean(); //清除緩衝區,避免亂碼
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=\"$fileName\"");
        header('Cache-Control: max-age=0');
 
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output'); //文件通過瀏覽器下載
            exit;
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章