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 ...
随机推荐
- 误删除innodb ibdata数据文件-之恢复
今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了.不知道怎么解决.当时我也不知道怎么办.后来查阅相关资料.终找到解决方法.其实恢复也挺简单 ...
- Leetcode 327.区间和的个数
区间和的个数 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper.区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的 ...
- main()中的参数argc, argv
转自:http://blog.csdn.net/eastmount/article/details/20413773 一.main()函数参数 通常我们在写主函数时都是void main()或int ...
- Flutter 发布APK时进行代码/资源混淆的坑
Flutter 发布APK时进行代码/资源混淆的坑 @author ixenos 1. 关键点 proguard是Java的代码混淆工具,但是当用第三方库的时候,必须要告诉proguard不要检查,因 ...
- 【Luogu】P1306斐波那契公约数(递推)
题目链接 有个定理叫gcd(f(n),f(m))=f(gcd(n,m)) 所以递推就好了. #include<cstdio> #include<cstdlib> #includ ...
- 【Luogu】P2015二叉苹果树(DP,DFS)
题目链接 设f[i][j][k]表示给以i为根节点的子树分配j条可保留的树枝名额的时候,状态为k时能保留的最多苹果. k有三种情况. k=1:我只考虑子树的左叉,不考虑子树的右叉,此时子树能保留的最多 ...
- 跟着xiaoxin巨巨做cf
cf 385 C. Bear and Prime Numbers 题目大意:有一个数列{xi},每次给出一个询问[l, r],即问 S(l ,r)是l和r之间的素数,f(p)表示数列{xi}中整除p的 ...
- win8激活工具,win 8激活工具,windows8激活工具,赶紧来下载咯
同事前几天买了一个电脑,装的win8的系统,由于装office,需要激活,找了下office的激活工具,那个Office激活工具自带有win8激活,同事点错了,把正版系统给激活了,变成盗版了(悲剧.. ...
- Java面试题集(六)
以下为框架补充部分: Struts 2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的? Action从页面获取数据有三种方式: ①通过Action属性接 ...
- 一个关于 jquery 和 php 的 jsonp 例子(与后台PHP成功通信)
<script> $(document).ready(function(){ $.ajax({ url:'http://localhost/test/jsonp.php', dataTyp ...