2018-05-25

導(dǎo)出,導(dǎo)入Excel文件

連接數(shù)據(jù)庫?


<?php

class db{

public $conn=null;

public function __construct($config){//構(gòu)造方法 實例化類時自動調(diào)用

$this->conn=mysql_connect($config['host'],$config['username'],$config['password']) or die(mysql_error());//連接數(shù)據(jù)庫

mysql_select_db($config['database'],$this->conn) or die(mysql_error());//選擇數(shù)據(jù)庫

mysql_query("set names ".$config['charset']) or die(mysql_error());//設(shè)定mysql編碼

}

/**

**根據(jù)傳入sql語句 查詢mysql結(jié)果集

**/

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;

}

/**

** 根據(jù)傳入年級數(shù) 查詢每個年級的學(xué)生數(shù)據(jù)

**/

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;

}

/**

**根據(jù)年級數(shù)查詢所有的班級

**/

public function getClassByGrade($grade){

$sql="select distinct(class) from user where grade=".$grade." order by class asc";

$res=$this->getResult($sql);

return $res;

}

/**

**根據(jù)年級數(shù)班級數(shù)查詢學(xué)生信息

**/

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;

}

}

?>

導(dǎo)出Excel文件

<?php

$dir=dirname(__FILE__);//查找當(dāng)前腳本所在路徑

require $dir."/db.php";//引入mysql操作類文件

require $dir."/PHPExcel/PHPExcel.php";//引入PHPExcel

$db=new db($phpexcel);//實例化db類 連接數(shù)據(jù)庫

$objPHPExcel=new PHPExcel();//實例化PHPExcel類惰爬, 等同于在桌面上新建一個excel

for($i=1;$i<=3;$i++){

if($i>1){

$objPHPExcel->createSheet();//創(chuàng)建新的內(nèi)置表

}

$objPHPExcel->setActiveSheetIndex($i-1);//把新創(chuàng)建的sheet設(shè)定為當(dāng)前活動sheet

$objSheet=$objPHPExcel->getActiveSheet();//獲取當(dāng)前活動sheet

$objSheet->setTitle($i."年級");//給當(dāng)前活動sheet起個名稱

$data=$db->getDataByGrade($i);//查詢每個年級的學(xué)生數(shù)據(jù)

$objSheet->setCellValue("A1","姓名")->setCellValue("B1","分?jǐn)?shù)")->setCellValue("C1","班級");//填充數(shù)據(jù)

$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');//告訴瀏覽器數(shù)據(jù)excel07文件

}

header('Content-Disposition: attachment;filename="'.$filename.'"');//告訴瀏覽器將輸出文件的名稱

header('Cache-Control: max-age=0');//禁止緩存

}

?>


導(dǎo)入Excel

<?php

?header("Content-Type:text/html;charset=utf-8");

$dir=dirname(__FILE__);//找到當(dāng)前腳本所在路徑require $dir."/PHPExcel/PHPExcel/IOFactory.php";//引入讀取excel的類文件$filename=$dir."/export_1.xls";$fileType=PHPExcel_IOFactory::identify($filename);//自動獲取文件的類型提供給phpexcel用

$objReader=PHPExcel_IOFactory::createReader($fileType);//獲取文件讀取操作對象$sheetName=array("2年級","3年級");$objReader-setLoadSheetsOnly($sheetName);//只加載指定的sheet$objPHPExcel=$objReader->load($filename);//加載文件

/**$sheetCount=$objPHPExcel->getSheetCount();//獲取excel文件里有多少個sheetfor($i=0;$i<$sheetCount;$i++){$data=$objPHPExcel->getSheet($i)->toArray();//讀取每個sheet里的數(shù)據(jù) 全部放入到數(shù)組中print_r($data);}**/

foreach($objPHPExcel->getWorksheetIterator() as $sheet){

//循環(huán)取sheetforeach($sheet->getRowIterator() as $row){//逐行處理

if($row->getRowIndex()<2){continue;

}

foreach($row->getCellIterator() as $cell){

//逐列讀取$data=$cell->getValue();

//獲取單元格數(shù)據(jù)

echo $data." ";}

echo '';

}

echo '';

}exit;?>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市昌阿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遣疯,老刑警劉巖洒宝,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芯侥,居然都是意外死亡泊交,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門柱查,熙熙樓的掌柜王于貴愁眉苦臉地迎上來廓俭,“玉大人,你說我怎么就攤上這事唉工⊙衅梗” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵淋硝,是天一觀的道長雹熬。 經(jīng)常有香客問我,道長谣膳,這世上最難降的妖魔是什么竿报? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮继谚,結(jié)果婚禮上烈菌,老公的妹妹穿的比我還像新娘。我一直安慰自己犬庇,他們只是感情好僧界,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臭挽,像睡著了一般捂襟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欢峰,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天葬荷,我揣著相機(jī)與錄音,去河邊找鬼纽帖。 笑死宠漩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的懊直。 我是一名探鬼主播扒吁,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼室囊!你這毒婦竟也來了雕崩?” 一聲冷哼從身側(cè)響起魁索,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盼铁,沒想到半個月后粗蔚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡饶火,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年鹏控,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肤寝。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡当辐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出醒陆,到底是詐尸還是另有隱情瀑构,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布刨摩,位于F島的核電站寺晌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏澡刹。R本人自食惡果不足惜呻征,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望罢浇。 院中可真熱鬧陆赋,春花似錦、人聲如沸嚷闭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胞锰。三九已至灾锯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嗅榕,已是汗流浹背顺饮。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留凌那,地道東北人兼雄。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像帽蝶,于是被迫代替她去往敵國和親赦肋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容