PHPExcel探索之旅---阶段一
类似于Java,php也有操作Excel的方法,其中需要下载PHPExcel插件,将其中的Classes文件夹改名为PHPExcel并提取到根文件夹外面,将两个文件夹一起放在所需项目中
使用PHPExcel插件需要先实例化一个PHPExcel对象 整个过程需要用到以下函数:
new PHPExcel() ----新建一个PHPExcel对象
createSheet() -----新建一个sheet表
setActiveSheetIndex() ---- 通过下标设置活动sheet表
getActiveSheet() ---- 得到当前为活动状态的sheet表,返回的是对象
setTitle() ---- 给当前活动sheet表设置名字
setCellValue("A1","填充内容") ---- 给单元格填充数据
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007") ----- 生成excel文件
$objWriter -> save($dir."/export_1.xlsx") ----- 保存到当前目录下面
下面是将数据库中user表中的数据提取出来填充到Excel中的代码
<?php
/***
* mysql的配置文件
* */
$phpexcel = array(
"host" => "localhost",
"username" => "root",
"password" => "",
"database" => "test",
"charset" => "utf8"
);
dbconfig.php
<?php
/**
* 创建一个类db用来连接数据库及定义对数据库的操作
* */
require dirname(__FILE__).'/dbconfig.php';//引入配置文件
//创建一个db类
class db{
public $conn = null; public function __construct($config){//构造方法 实例化类时自动调用
$this -> conn = mysql_connect($config["host"],$config["username"],$config["password"]) or die(mysql_error());
mysql_select_db($config["database"]) or die(mysql_error());//选择数据库
mysql_query("set names ".$config["charset"]) or die(mysql_error());//设定数据库编码
} //根据传入sql语句 查询mysql结果集 =》mysql单例模式
public function getResult($sql){
$resource = mysql_query($sql) or die(mysql_error());//查询sql语句
$res = array();
while(($row = mysql_fetch_assoc($resource)) != false){//以行取出资源句柄里的信息
$res[] = $row;
}
return $res;
//var_dump($res)."<br>";
} //传入年纪数 导出每个年纪的学生数据
public function getDataByGrade($grade){
$sql ="select username,score,class from user where grade=".$grade." order by score desc";
//$sql="select username,score,class from user where grade=".$grade." order by score desc";
$res = self::getResult($sql);
var_dump($res);
return $res;
} }
db.php
<?php
/**
*用来导出数据表中的数据到Excel中的主要文件
* */
$dir = dirname(__FILE__); require $dir."/db.php";
require $dir."/PHPExcel/PHPExcel.php"; $db = new db($phpexcel);//实例化的db类 连接mysql数据库
$objPHPExcel = new PHPExcel();//新建一个PHPEXcel对象 for($i = 1;$i <= 3; $i ++){
if($i > 1){
$objPHPExcel -> createSheet();
}
$objPHPExcel -> setActiveSheetIndex($i - 1);//下标从零开始
$objSheet = $objPHPExcel -> getActiveSheet();//设置新建的sheet为当前活动sheet
$objSheet -> setTitle($i.'年级');
$data = $db -> getDataByGrade($i);//查询每个年级学生的信息
//var_dump($data)."<br>"; //导出数据
$objSheet -> setCellValue("A1","姓名")-> setCellValue("B1","成绩")-> setCellValue("C1","班级");
$j = 2; foreach($data as $key => $val){
var_dump($val);
$objSheet->setCellValue("A".$j,$val['username'])->setCellValue("B".$j,$val['score'])->setCellValue("C".$j,$val['class']."班");
$j++;
} } $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007");//生成excel文件
$objWriter -> save($dir."/export_1.xlsx");//保存到当前目录下面
export.php
出现的主要问题:
$res = array();
while(($row = mysql_fetch_assoc($resource)) != false){//以行取出资源句柄里的信息
$res[] = $row;
}
上面的代码的意思是将数据表中的每一条数据以关联数组的形式取出来并作为数组$res的一个原子,而数组$res包含的是整个数据表中的所有信息
所以输出时有:
foreach($data as $key => $val){
$objSheet->setCellValue("A".$j,$val['username'])->setCellValue("B".$j,$val['score'])->setCellValue("C".$j,$val['class']."班");
$j++;
}
PHPExcel探索之旅---阶段一的更多相关文章
- PHPExcel探索之旅---阶段四 导入文件
步骤就是:实例化excel读取对象=> 加载excel文件 => 读取excel文件(全部读取.逐行读取) <?php header("Content Type :text ...
- PHPExcel探索之旅---阶段三 绘制图表
利用PHPExcel插件进行绘制图表 <?php /** * 使用PHPExcel插件在excel文件中利用其中的数据建立折线图 * */ $dir = dirname(__FILE__); r ...
- PHPExcel探索之旅---阶段二 设置表格样式
1.设置表格的默认样式为水平居中.垂直居中 getDefaultStyle()函数用来设置默认样式 由活动sheet对象来调用,setVertical()函数和setHorizontal()函数分别用 ...
- PHPExcel探索之旅
学习地址: https://www.imooc.com/video/8359 下载地址: https://packagist.org/packages/phpoffice/phpexcel 用comp ...
- 【C语言探索之旅】 第二部分第一课:模块化编程
内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
- 【Linux探索之旅】第二部分第二课:命令行,世界尽在掌握
内容简介 1.第二部分第二课:命令行,世界尽在掌握 2.第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:“小编,你为什么每次都要起这么非主 ...
- 【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见
内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是 ...
- 【Web探索之旅】第四部分:Web程序员
内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...
- 【Web探索之旅】第三部分第一课:服务器
内容简介 1.第三部分第一课:服务器 2.第三部分第二课预告:IP地址和域名 第三部分第一课:服务器 大家好,欢迎来到[Web探索之旅]的第三部分.这一部分有不少原理,还是很重要的. 这一部分我们会着 ...
随机推荐
- Agc016_D XOR Replace
传送门 题目大意 给定两个长为$n$的序列$A,B$你可以进行若干组操作,每次操作选定一各位置$x$,令$A_x$等于$A$的异或和. 问能否通过一定操作使得$A$成为$B$,如果能,求最小操作书数. ...
- 4445: [Scoi2015]小凸想跑步 半平面交
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=4445 题解: 设点坐标,利用叉积可以解出当p坐标为\((x_p,y_p)\)时,与边i- ...
- 2017.10.6北京清北综合强化班DAY6
题目大意:改变一个数的位置 把一个序列变成不下降序列 题解: 设置一个pre,如果破坏单调性,就把‘删除’这个.否则把pre修改为当前元素的值. 考试时这样得了90分,是因为我的做法只能过这样的数据 ...
- 使用MDI窗体实现多窗口效果
本文章已收录于: C#MDI窗体实现多窗口效果 Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程 序设计语言,正在受到越来越多的编程人员的喜欢.在Visua ...
- [转]CSS遮罩——如何在CSS中使用遮罩
特别声明:此篇文章由D姐根据Christian Schaefer的英文文章原名<CSS Masks – How To Use Masking In CSS Now>进行翻译,整个译文带有我 ...
- CentOS6 下Samba服务器的安装与配置
原地址:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 一.简介 Samba是一个能让Linux系统应用Microsoft网 ...
- 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...
- JavaScript-Tool:pluload
ylbtech-JavaScript-Tool:pluload Plupload是用于处理文件上传的JavaScript API,支持多文件选择.文件类型过滤.请求分块.客户端图像缩放等功能,使用不同 ...
- PHP7三元运算符 ?? 和 ?: 的区别
1. (expr1) ?? (expr2) 是 PHP7才有的功能,等同于: isset(expr1) ? expr1 : expr2 ; 2.(expr1) ?: (expr2) 是PHP5.3才 ...
- MD5算法的c++实现
需要注意的几点: (1)md5存取的数据长度仅为64位,位于数据的最前端,大于令其自然溢出. (2)update函数和final函数处理得很繁琐,需要仔细分析. (3)16位md5码取32位md5码的 ...