网站使用 PHPExcel导出excel表格
首先下载一个PHPExcel类文件,下载地址:http://phpexcel.codeplex.com/
定义一个数据库配置文件,db.inc.php:
'127.0.0.1', 'db_name'=>'test', 'db_user'=>'root', 'db_pass'=>'root', 'db_charset'=>'utf-8' ); ?>
数据库信息根据自己的信息修改;
在新建一个 db类,db.class.php:
mysql=mysql_connect($config['db_host'],$config['db_user'],$config['db_pass']) or die(mysql_error());
mysql_select_db($config['db_name'],$this->mysql) or mysql_error();
mysql_query('set names '.$config['db_charset'],$this->mysql) or mysql_error();
}
public function query($sql){
$rst=mysql_query($sql);
$rows=array();
while ($row=mysql_fetch_assoc($rst)) {
$rows[]=$row;
}
return $rows;
}
public function getInfo(){
$sql="SELECT id,name,age,color,money FROM user ORDER BY money DESC LIMIT 20";
return self::query($sql);
}
}
?>这里只使用了一个query查询语句;
在新建一个需要导出的php文件,index.php,代码全部贴上来:
<?php
$dir=dirname(__FILE__);
include $dir.'/db.class.php';
include $dir.'/PHPExcel/PHPExcel.php';
$db=new db(); //实例化数据库对象
$excelObj=new PHPExcel(); //实例化phpexcel
for($i=1;$i1){
$excelObj->createSheet(); //创建3个内置表 sheet
}
$excelObj->setActiveSheetIndex($i-1); //设置当前为活动对象 sheet
$sheetObj=$excelObj->getActiveSheet(); //
$sheetObj->getDefaultStyle()
->getAlignment()
->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER) //设置垂直居中
->setHorizontal(PHPExcel_Style_Alignment::VERTICAL_CENTER); //设置水平居中
$sheetObj->setTitle('color-'.$i); //设置sheet名称
$sheetObj->setCellValue('A1','id')
->setCellValue('B1','用户名')
->setCellValue('C1','颜色')
->setCellValue('D1','金钱'); //添加表头
$infos=$db->getInfo(); //取得数据库内的数据
$j=2;
foreach($infos as $k =>$v){ //遍历填充表数据
$sheetObj->setCellValue('A'.$j,$v['id'])
->setCellValue('B'.$j,$v['name'])
->setCellValue('C'.$j,$v['color'])
->setCellValue('D'.$j,$v['money']);
$j++;
}
}
$saveObj=PHPExcel_IOFactory::createWriter($excelObj,'Excel2007');
// 直接保存到服务器
// $saveObj->save(time().'demo_2.xlsx');
//输出至浏览器
outFile(time().'demo3.xlsx');
$saveObj->save('php://output');
// 输出到浏览器
//
function outFile($fileName,$type='Execl2007'){
if($type=='Execl5'){
header('Content-Type: application/vnd.ms-excel');
}else{
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
}
header('Content-Disposition: attachment;filename="'.$fileName.'"');
header('Cache-Control: max-age=0');
}
?>这样就可以把数据库的数据导出到指定的文件下了
Dcr163的博客
http://dcr163.cn/111.html(转载时请注明本文出处及文章链接)