數據庫導入Exel,輸入到瀏覽器
阿新 • • 發佈:2017-07-11
信息 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,輸入到瀏覽器