现在数据库有一组数据,就是按照年级的分类的学生分数,如何按照年级分类导出到excel表中

1、数据库配置文件config.php

<?php
$config = array(
'host'=>'127.0.0.1',
'username'=>'root',
'password'=>'',
'database'=>'phpexcel',
'charset'=>'utf8'
);

2、数据库操作文件db.php,单例模式操作

<?php
class Db { private static $_instance;
private $conn = null;
private function __construct() {
require "./dbconfig.php";
$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']);
} //查询结果集
public function getResult($sql) {
$resource = mysql_query($sql,$this->conn) or die(mysql_error());
$res = array();
while($row = mysql_fetch_assoc($resource)) {
$res[] = $row;
}
return $res;
} //单例模式
public static function getInstance() {
if (!self::$_instance instanceof self) {
self::$_instance = new self();
}
return self::$_instance;
} private function __clone() {
trigger_error('Clone is not allow!',E_USER_ERROR);
}
}

3、生成excel类

<?php
header("Content-Type:text/html;charset=utf-8");
require "./db.php";
require "./PHPExcel/PHPExcel.php"; //连接数据库
$db = Db::getInstance(); //实例化excel类
$objPHPExcel = new PHPExcel(); //创建sheet
for ($i=1; $i<=3; $i++) {
if ($i > 1) { //默认已经有一个sheet,从第二个开始创建
$objPHPExcel->createSheet();
}
$objPHPExcel->setActiveSheetIndex($i-1);
//获得当前活动sheet的操作对象
$objSheet = $objPHPExcel->getActiveSheet(); //设置sheet标题
$objSheet->setTitle($i.'年级'); //从数据库查询数据
$Db = Db::getInstance(); //查询每个年级的活动数据
$data = $Db->getResult("select * from user where grade = ".$i); $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分数")->setCellValue("C1","班级"); //添加数据
$j = 2;
foreach ($data as $value) {
$objSheet->setCellValue("A".$j,$value['username'])->setCellValue("B".$j,$value['score'])->setCellValue("C".$j,$value['grade']);
$j++;
}
} //按照指定格式生成excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//生成excel 2007
$objWriter->save('class.xlsx'); //如果需要输出到浏览器,请打开以下注释和注释掉save行
//输出到浏览器
/*browser_export('Excel7','export.xlsx');
$objWriter->save('php://output');
function browser_export($type,$exportName) {
//输出到浏览器
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="'.$exportName.'"');//文件名称
header('Cache-Control: max-age=0');//禁止浏览器缓存
}*/

以上就是操作实例,如需转载请注明出处,不慎感激。

最新文章

  1. Kmeans聚类算法原理与实现
  2. 使用6to5,让今天就来写ES6的模块化开发!
  3. php统计字数函数
  4. C#中,为什么结构体也可以设置构造函数?
  5. 1030-ACM程序设计之马拉松竞赛
  6. Android模拟器访问本地的localhost失败及解决方案
  7. 4_Is Prime
  8. memcahced缓存特点
  9. 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
  10. Zabbix系列之八——安装agent监控windows
  11. flume进阶
  12. Docker镜像原理
  13. [Html5] HTML5 开发手机应用
  14. C# NPOI 操作excel
  15. sql 传入参数为逗号分隔的字符串处理方法
  16. Centos安装Python3(自带pip和setuptools)
  17. 三款工作流引擎比较:WWF、netBPM 和 ccflow
  18. VC6.0创建DLL动态链接库四大要素
  19. mongodb时间点备份恢复
  20. 【BZOJ4894】天赋(矩阵树定理)

热门文章

  1. cs229_part3
  2. Spring核心技术(十一)——基于Java的容器配置(一)
  3. django的rest framework框架——安装及基本使用
  4. Knockout v3.4.0 中文版教程-14-控制文本内容和外观-style绑定
  5. 关于requirejs和grunt压缩合并是否矛盾
  6. bootshiro---开源的后台管理框架--基于springboot2+ shiro+jwt的真正rest api资源无状态认证权限管理框架,开发人员无需关注权限问题,后端开发完api,前端页面配置即可
  7. 在table第一行前插入一行
  8. Java算法HmacSHA256不可用 - Java Algorithm HmacSHA256 not available
  9. 有大神告诉我为什么pymysql导入失败
  10. 【图论】bnuoj 52810 Splitting the Empire