PHP生成excel(2)
现在数据库有一组数据,就是按照年级的分类的学生分数,如何按照年级分类导出到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)的更多相关文章
- 两种方式实现java生成Excel
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
- 使用node.js生成excel报表下载(excel-export express篇)
引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种 ...
- Python实战 :2017国考职业表excel转数据库,再查询生成excel
最近看2017年国考的职业表,多而杂,不好过滤我想要的信息,特此把它转成Sqlite3数据库,再从数据库里把查询结果导出成excel,方便找职业. (后附上整套代码) 环境:python2.7 x ...
- asp.net+nopi生成Excel遇到设置单元格值null问题
Npoi 生成excel报表功能很不错,功能也不用给大家介绍了.首先看遇到的问题吧! FileStream file = new FileStream(Server.MapPath("Tem ...
- phpexcel生成excel并下载
Loader::import('PHPExcel.Classes.PHPExcel'); // tp5中只需将phpexcel文件放入extend文件夹中,即可采用该方法引入,需要先 use thin ...
- java动态生成excel打包下载
@SuppressWarnings("unchecked") public String batchExport() throws DBException{ @SuppressWa ...
- JAVA利用JXL导出/生成 EXCEL
/** * 导出导出采暖市场部收入.成本.利润明细表 * @author JIA-G-Y */ public String exporExcel(String str) { String str=Se ...
- 在.NET中使用EPPlus生成Excel报表 .
--摘抄自:http://blog.csdn.net/zhoufoxcn/article/details/14112473 在开发.NET应用中可能会遇到需要生成带图表(Chart)的Excel报表的 ...
- 【java】:生成excel
//生成报表公用方法 //excelName: 生成的文件名 //list:时间/日期/描述 //listSelectFiled: 标题 //showContent : 文件内容bean //生成 ...
- asp.net 生成 excel导出保存时, 解决迅雷下载aspx页面问题
网络上搜索,一大堆废话,以下为简单的导出生成Excel代码: string excelFile = Server.MapPath("~/SB/UpFile/20151104111008/Bo ...
随机推荐
- Python 前端 Css基础
CSS样式存在的位置 1.放置在标签内,局部生效 <div style="color: red;font-size: 18px;">hello world</di ...
- Mysql 学习目录
Mysql 目录 Mysql之路[第一篇]:Mysql基础 Mysql之路[第二篇]:Mysql 常用命令 Mysql之路[第三篇]:Python对Mysql的操作 Mysql之路[第四篇]:ORM ...
- Java-得到类的包
package com.tj; public class MyClass2 { public static void main(String[] args) { Class cls = java.la ...
- How To Configure VMware fencing using fence
本文主要简单介绍一下如何在RHEL 7 Pacemaker中配置一个fence_vmware_soap类型的STONITH设备(仅供测试学习). STONITH是Shoot-The-Other-Nod ...
- 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x ...
- NYOJ 311 完全背包
完全背包 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用.第i种物品的体积是c,价值是 ...
- 如何部署 sources and javadoc jars
mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file -Durl=file:///home/me/m2-repo \ - ...
- 有关php启动时候报错信息
1 : An another FPM instance seems to already listen on /tmp/php-cgi.sock有关/tem/php-cgi.sock问题查看进程可以或 ...
- 【Luogu】P1594护卫队(前缀和+DP)
TM搞了半天的二维DP方程还是错的. 这是题目链接: 设f[i]表示前i辆车顺利通过的最小时间. 则对于每一个i枚举该组车的起点j,然后从所有的f[j]+Min[j][i]中选一个最小的. Min[j ...
- LightOJ——1066Gathering Food(BFS)
1066 - Gathering Food PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB W ...