1. 程式人生 > >數據庫導入Exel,輸入到瀏覽器

數據庫導入Exel,輸入到瀏覽器

信息 shee getc 姓名 nec 類文件 cto office mysql

db.php

<?php 
	require dirname(__FILE__)."/dbconfig.php";//引入配置文件

	class db{
		public $conn=null;

		public function __construct($config){//構造方法 實例化類時自動調用 
				$this->conn=mysql_connect($config[‘host‘],$config[‘username‘],$config[‘password‘]) or die(mysql_error());//連接數據庫
				mysql_select_db($config[‘database‘],$this->conn) or die(mysql_error());//選擇數據庫
				mysql_query("set names ".$config[‘charset‘]) or die(mysql_error());//設定mysql編碼
		}
		/**
		**根據傳入sql語句 查詢mysql結果集
		**/
		public function getResult($sql){
			$resource=mysql_query($sql,$this->conn) or die(mysql_error());//查詢sql語句
			$res=array();
			while(($row=mysql_fetch_assoc($resource))!=false){
				$res[]=$row;
			}
			return $res;
		}
		/**
		** 根據傳入年級數 查詢每個年級的學生數據
		**/
		public function getDataByGrade($grade){
			$sql="select username,score,class from user where grade=".$grade." order by score desc";
			$res=self::getResult($sql);
			return $res;
		}

		/**
		** 查詢所有的年級
		**/
		public function getAllGrade(){
			$sql="select distinct(grade) from user  order by grade asc";
			$res=$this->getResult($sql);
			return $res;
		}

		/**
		**根據年級數查詢所有的班級
		**/
		public function getClassByGrade($grade){
			$sql="select distinct(class) from user where grade=".$grade." order by class asc";
			$res=$this->getResult($sql);
			return $res;
		}

		/**
		**根據年級數班級數查詢學生信息
		**/
		public function getDataByClassGrade($class,$grade){
			$sql="select username,score from user where class=".$class." and grade=".$grade." order by score desc";
			$res=$this->getResult($sql);
			return $res;
		}
	}
?>

 conf.php

<?php 
	$phpexcel=array(
			‘host‘=>"127.0.0.1",
			"username"=>"root",
			"password"=>"",
			"database"=>"phpexcel",
			"charset"=>"utf8"
	);
?>

export.php

<?php 
	$dir=dirname(__FILE__);//查找當前腳本所在路徑
	require $dir."/db.php";//引入mysql操作類文件
	require $dir."./PHPExcel.php";//引入PHPExcel
	$db=new db($phpexcel);//實例化db類 連接數據庫
	$objPHPExcel=new PHPExcel();//實例化PHPExcel類, 等同於在桌面上新建一個excel
	for($i=1;$i<=3;$i++){
		if($i>1){
			$objPHPExcel->createSheet();//創建新的內置表
		}
		$objPHPExcel->setActiveSheetIndex($i-1);//把新創建的sheet設定為當前活動sheet
		$objSheet=$objPHPExcel->getActiveSheet();//獲取當前活動sheet
		$objSheet->setTitle($i."年級");//給當前活動sheet起個名稱
		$data=$db->getDataByGrade($i);//查詢每個年級的學生數據
		$objSheet->setCellValue("A1","姓名")->setCellValue("B1","分數")->setCellValue("C1","班級");//填充數據
		$j=2;
		foreach($data as $key=>$val){
				$objSheet->setCellValue("A".$j,$val[‘username‘])->setCellValue("B".$j,$val[‘score‘])->setCellValue("C".$j,$val[‘class‘]."班");
				$j++;
		}
	}
	$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,‘Excel5‘);//生成excel文件
	//$objWriter->save($dir."/export_1.xls");//保存文件
	browser_export(‘Excel5‘,‘browser_excel03.xls‘);//輸出到瀏覽器
	$objWriter->save("php://output");


	function browser_export($type,$filename){
		if($type=="Excel5"){
				header(‘Content-Type: application/vnd.ms-excel‘);//告訴瀏覽器將要輸出excel03文件
		}else{
				header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘);//告訴瀏覽器數據excel07文件
		}
		header(‘Content-Disposition: attachment;filename="‘.$filename.‘"‘);//告訴瀏覽器將輸出文件的名稱
		header(‘Cache-Control: max-age=0‘);//禁止緩存
	}

?>

  

數據庫導入Exel,輸入到瀏覽器