2018-05-25

导出,导入Excel文件

连接数据库 


<?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;

}

}

?>

导出Excel文件

<?php

$dir=dirname(__FILE__);//查找当前脚本所在路径

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

require $dir."/PHPExcel/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');//禁止缓存

}

?>


导入Excel

<?php

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

$dir=dirname(__FILE__);//找到当前脚本所在路径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里的数据 全部放入到数组中print_r($data);}**/

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

//循环取sheetforeach($sheet->getRowIterator() as $row){//逐行处理

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

}

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

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

//获取单元格数据

echo $data." ";}

echo '';

}

echo '';

}exit;?>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容