PHPExcel 生成excel统计表格
db.php为数据库操作类, $config为数据库配置,PHPExcel版本为PHPExcel_1.8.0, php代码:
- $dir = dirname(__FILE__);
- require $dir . "/PHPExcel/db.php";
- require $dir . "/PHPExcel/PHPExcel.php";
- $object = new PHPExcel();
- $db = new db($config);
- $objSheet = $object->getActiveSheet();
- //文字居中和文字设置
- $objSheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objSheet->getDefaultStyle()->getFont()->setName("微软雅黑")->setSize(14);
- $objSheet->getStyle("A2:X2")->getFont()->setSize(20)->setBold(TRUE);
- $objSheet->getStyle("A3:X3")->getFont()->setSize(16)->setBold(TRUE);
- //设置行高
- $objSheet->getRowDimension(2)->setRowHeight(35);
- $objSheet->getRowDimension(3)->setRowHeight(25);
- $objSheet->getRowDimension(4)->setRowHeight(20);
- //填充颜色
- $objSheet->getStyle("A2:X2")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('ffff00');
- $objSheet->getStyle("A3:X3")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('ff0000');
- //sheet名长
- $objSheet->setTitle("成绩表");
- //查询所有的年级
- $i = 0;
- $data_g = $db->getAllGrade();
- foreach($data_g as $g_k=>$g_v) {
- //查询每个年级有几个班
- $data_c = $db->getAllClassBYGrade($g_v['grade']);
- //获取年级所在单元格并填充单元格
- $gradeIndex = $i*2;
- $grade = getCells($gradeIndex);
- $objSheet->setCellValue($grade."2", $g_v['grade']."年级");
- foreach($data_c as $c_v) {
- //查询所有学生成绩
- $data = $db->getDataByClass($c_v['class'], $g_v['grade']);
- //获取姓名和分数所在单元格
- $nameIndex = $i*2;
- $scoreIndex = $i*2+1;
- $index_c = getCells($nameIndex);
- $score = getCells($scoreIndex);
- //填充班级行
- $objSheet->setCellValue($index_c."3", $c_v['class']."班");
- //填充栏目名称
- $objSheet->setCellValue($index_c."4", "姓名")->setCellValue($score."4", "分数");
- //$objSheet->getStyle($index_c)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
- //自动换行
- //$objSheet->getStyle($nameIndex)->getAlignment()->setWrapText(true);
- //开始输出内容
- $j = 5;
- foreach($data as $v) {
- $objSheet->setCellValue($index_c.$j, $v['name'])->setCellValue($score.$j, ' '.$v['score']);
- //设置行高
- $objSheet->getRowDimension($j)->setRowHeight(20);
- $j++;
- }
- $i++;
- //合并班级单元格
- $endClass = getCells($i*2-1);
- $objSheet->mergeCells($index_c."3:".$endClass."3");
- //设置班级的边框
- $styleArray = borderStyle('0000FF');
- $objSheet->getStyle($index_c."3:".$endClass."3")->applyFromArray($styleArray);
- }
- //合并年级单元格
- $endGrade = getCells($i*2-1);
- $objSheet->mergeCells($grade."2:".$endGrade."2");
- //设置年级的边框
- $styleArray = borderStyle('00FF00');
- $objSheet->getStyle($grade."2:".$endGrade."2")->applyFromArray($styleArray);
- }
- //通过传入参数(1-26)得到A-Z的字母列
- function getCells($index) {
- $str = range(A, Z);
- return $str[$index];
- }
- //设置边框样式
- function borderStyle($color) {
- $styleArray = array(
- 'borders' => array(
- 'outline' => array(
- 'style' => PHPExcel_Style_Border::BORDER_THICK,
- 'color' => array('rgb' => $color),
- ),
- ),
- );
- return $styleArray;
- }
- header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
- header('Content-Disposition: attachment;filename="01simple.xlsx"');
- header('Cache-Control: max-age=0');
- $objWriter = PHPExcel_IOFactory::createWriter($object, 'Excel5');
- $objWriter->save('php://output');
数据库结构:
效果图:
PHPExcel 生成excel统计表格的更多相关文章
- phpexcel生成excel并下载
Loader::import('PHPExcel.Classes.PHPExcel'); // tp5中只需将phpexcel文件放入extend文件夹中,即可采用该方法引入,需要先 use thin ...
- PHPExcel生成Excel文件---提示导出文件或者文件扩展名不一致,或导出的文件或文件扩展名无效
$data = Db::name('shop_cart')->where('phone','15555555555')->select(); $objPHPExcel = new PHPE ...
- [moka同学笔记]PHPexcel之excel导出和导入
原案例来自http://www.sucaihuo.com/有修改 1.目录结构(文件不用解释,应该都可以看得懂,直接看代码)
- thinkphp整合系列之phpexcel生成生成excel文件
在后台管理中会经常需要将数据生成excel表格的: php生成excel有两种方案: 一种是通过phpexcel生成xls格式的表格文件: 另一种则直接通过逗号换行生成csv格式的表格文件: 这里先讲 ...
- php生成Excel表格
//引用新建对象<br>require "../phpexcel/Classes/PHPExcel.php"; $excel = new PHPExcel(); 建表格 ...
- PHP生成excel表格文件并下载
本文引自网络,仅供自己学习之用. 利用php导出excel我们大多会直接生成.xls文件,这种方便快捷. function createtable($list,$filename){ header(& ...
- 用php 生成 excel 表格
//引用新建对象require "../phpexcel/Classes/PHPExcel.php"; $excel = new PHPExcel(); 建表格 //Excel表格 ...
- 使用PHPExcel解析Excel表格
安装类库 从GitHub上下载PHPExcel类库 地址:https://github.com/PHPOffice/PHPExcel 解压后将Classes文件夹移动到ThinkPHP的extend目 ...
- JavaWeb开发中采用FreeMarker生成Excel表格
最近做了一个需求,要求导出一个采购合同的Excel表格,这个表格样式比较多.由于是合同,这个Excel表格里面有好多格式要求,比如结尾处签字那部分就有格式要求.这里介绍种采用FreeM ...
随机推荐
- cocos2dx tag和zorder
当一个渲染对象加入到两外一个渲染对象中时,可以有两个可选参数,一个时tag,一个是order virtual void addChild(CCNode * child); virtual void a ...
- Android开发匹配字符笔记
Windows下的回车换行符是\r\n,而Linux下的回车换行符是\n 所以,在windows下可以用\r\n,而在linux下要用\n 并且还发现在linux下(既在android上开发)需要匹配 ...
- strdup函数的使用方法
函数名: strdup 功 能: 将串复制到新建的位置处 用 法: char *strdup(char *str): 这个函数在linux的man手冊里解释为: The strdup() func ...
- Android实现 ScrollView + ListView无滚动条滚动
Android实现 ScrollView+ListView无滚动条滚动,即ListView的数据会全部显示完,但Listview无滚动条. 核心代码如下: 1. NoScrollListView.ja ...
- BNUOJ29065鸣人的查克拉
鸣人的查克拉 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: ...
- js 去除字符串左右两端的空格
<script type="text/javascript"> function trim(str){ //删除左右两端的空格 return str.repl ...
- UVa 10806 Dijkstra,Dijkstra(最小费用最大流)
裸的费用流.往返就相当于从起点走两条路到终点. 按题意建图,将距离设为费用,流量设为1.然后增加2个点,一个连向节点1,流量=2,费用=0;结点n连一条同样的弧,然后求解最小费用最大流.当且仅当最大流 ...
- RAW模板开发--入口文件官方规范
每个人都有自己的习惯,为了RAW模板能进一步推广,使RAW模板的开发也更有条理,所以写了这个文章. 规范1格式: <?php /*RAW标记声明-start*/ /*RAW标记声明-over*/ ...
- python自学笔记(二)python基本数据类型之字符串处理
一.数据类型的组成分3部分:身份.类型.值 身份:id方法来看它的唯一标识符,内存地址靠这个查看 类型:type方法查看 值:数据项 二.常用基本数据类型 int 整型 boolean 布尔型 str ...
- HTML+CSS笔记 CSS入门续集
继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代(标签). 语法: p{color:red;} <p> ...