现在数据库有一组数据,就是按照年级的分类的学生分数,如何按照年级分类导出到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');//禁止浏览器缓存
}*/

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

PHP生成excel(2)的更多相关文章

  1. 两种方式实现java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...

  2. 使用node.js生成excel报表下载(excel-export express篇)

    引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种 ...

  3. Python实战 :2017国考职业表excel转数据库,再查询生成excel

    最近看2017年国考的职业表,多而杂,不好过滤我想要的信息,特此把它转成Sqlite3数据库,再从数据库里把查询结果导出成excel,方便找职业. (后附上整套代码) 环境:python2.7   x ...

  4. asp.net+nopi生成Excel遇到设置单元格值null问题

    Npoi 生成excel报表功能很不错,功能也不用给大家介绍了.首先看遇到的问题吧! FileStream file = new FileStream(Server.MapPath("Tem ...

  5. phpexcel生成excel并下载

    Loader::import('PHPExcel.Classes.PHPExcel'); // tp5中只需将phpexcel文件放入extend文件夹中,即可采用该方法引入,需要先 use thin ...

  6. java动态生成excel打包下载

    @SuppressWarnings("unchecked") public String batchExport() throws DBException{ @SuppressWa ...

  7. JAVA利用JXL导出/生成 EXCEL

    /** * 导出导出采暖市场部收入.成本.利润明细表 * @author JIA-G-Y */ public String exporExcel(String str) { String str=Se ...

  8. 在.NET中使用EPPlus生成Excel报表 .

    --摘抄自:http://blog.csdn.net/zhoufoxcn/article/details/14112473 在开发.NET应用中可能会遇到需要生成带图表(Chart)的Excel报表的 ...

  9. 【java】:生成excel

    //生成报表公用方法 //excelName: 生成的文件名 //list:时间/日期/描述 //listSelectFiled:  标题 //showContent :  文件内容bean //生成 ...

  10. asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题

    网络上搜索,一大堆废话,以下为简单的导出生成Excel代码: string excelFile = Server.MapPath("~/SB/UpFile/20151104111008/Bo ...

随机推荐

  1. windows中阿里的自动化测试macaca安装配置

    一.环境配置 node cnpm环境安装 安卓环境配置 参考文档https://macacajs.github.io/zh/environment-setup 全局安装macaca-cli macac ...

  2. JS(DOM 和 BOM)

    JS(DOM 和 BOM) 常说的JS(浏览器执行的JS)包含两部分:1.JS基础知识(语法)(ECMA262标准)2.JS-Web-API(W3C标准) W3C 标准中关于 JS 的规定有:(只管定 ...

  3. codeforces Lightsabers (hard)

    题目大意: 给定每种球的数量,求从中选取k个球有多少种不同的取法,同种球视为相同的. 题解: 多项式(1+x+x^2+...+x^a[1])*(1+x+x^2+...+x^a[2])*(1+x+x^2 ...

  4. Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \

    class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vect ...

  5. 字符串格式化format很牛B

    python的format方法可谓相当强大,它可以接受不限个参数... 1.通过位置来格式化字符串,注意format传入的参数的位置要正确{0}对应第1个参数,{1}对应第2个参数... >&g ...

  6. 【编程工具】Sublime Text3的安装和常用插件推荐

    本人刚刚学习 HTML,曾经上网找过一些编写 HTML 的软件,但感觉都不太好,经过三挑四选下,最终我决定选择 Sublime Text3 这款软件来作为学习工具,上网找到了许多实用的插件,在这里给大 ...

  7. matlab中函数学习——11月14日

    1.记录数组元素个数函数:numel() 解释:number of array 相当于 prod(size(A)) 2.添加路径: addpath('.\3rdparty\ksvd'); 3.pada ...

  8. 线段树 Mayor's posters

    甚至DFS也能过吧 Mayor's posters POJ - 2528 The citizens of Bytetown, AB, could not stand that the candidat ...

  9. LINQ-查询表达式基础

    一.LINQ查询的数据源 从应用程序的角度来看,原始源数据的特定类型和结构并不重要. 应用程序始终将源数据视为 IEnumerable<T> 或 IQueryable<T> 集 ...

  10. 跟着xiaoxin巨巨做cf

    cf 385 C. Bear and Prime Numbers 题目大意:有一个数列{xi},每次给出一个询问[l, r],即问 S(l ,r)是l和r之间的素数,f(p)表示数列{xi}中整除p的 ...