2018-05-25

导出,导入Excel文件

连接数据库 


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文件

$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

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

你可能感兴趣的:(2018-05-25)