PHPExcel从数据库导出数据生成excel文件
1、引入数据库操作类,引入PHPExcel核心文件,并实例化它们,代码实现:
//引入自定义封装好的数据库操作类
require_once('Model.php');
//引入PHPExcel类核心入口文件
require_once('./Classes/PHPExcel.php');
//实例化数据库操作类、PHPExcel类
$db = Model::getIntance();$objPHPExcel = new PHPExcel();
2、获取当前活动的sheet对象,并设置当前活动对象sheet设置名称,填充相关数据,代码实现:
//获取当前活动的sheet对象
$objSheet = $objPHPExcel->getActiveSheet();
//给当前活动sheet设置名称
$objSheet->setTitle('test');
//给当前活动sheet填充数据
$objSheet->setCellValue('A1', '编号')->setCellValue('B1', '姓名');
3、取得数据库表数据并按指定格式填充数据,代码实现:
$index = 2;
//取得数据库数据
$rel = $db->table('wfx_test')->select();if ($rel) { foreach ($rel as $key => $value) { $objSheet->setCellValue('A'.$index,$value['id'])->setCellValue('B'.$index,$value['name']); $index++; }}
4、编写一个将excel文件输出至浏览器(类似于在浏览器中有可点击下载该excel文件的操作)的函数,代码实现:
function browser_export($type, $filename){ if ($type == 'Excel3') {
//输出EXCEL2003格式
header('Content-Type:application/vnd.ms-excel'); } else{
//输出EXCEL2007格式
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); }
//设置文件名
header('Content-Disposition:attachment;filename="'.$filename.'"');
//禁止缓存
header('Cache-Control:max-age=0');}
5、按照指定格式生成excel文件,并输出至浏览器,代码实现:
//按照指定格式生产Excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
//输出到浏览器
browser_export('Excel2007', 'testexport.xlsx');$objWriter->save("php://output");
6、输出至浏览器样式