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 ...
随机推荐
- Android Material Design 之 Toolbar的使用
Material Design是谷歌提出来的最新ui设计规范,我想actionbar大家也许并不陌生,toolbar简单而言可以看做为actionbar的升级版,相比较actionbar而言,tool ...
- Oracle 11g RAC database on ASM, ACFS or OCFS2
I see a lot of questions on shared file systems that can be used when people move from single instan ...
- 多名Uber司机被指刷单遭封号 一周薪水为0
昨天,一司机在Uber“司机之家”办公地墙上写了泄愤的话 摄/法制晚报记者 苏妮 司机展示的账单显示,上周的薪水几乎为零,上面用英文标注了“欺诈行为”的字样 摄/法制晚报记者 苏妮 法制晚报讯(记者 ...
- <td style="word-break:break-all"> 在html中控制自动换行
在html中控制自动换行 其实只要在表格控制中添加一句 <td style="word-break:break-all">就搞定了. 其中可能对英文换行可能会分开一 ...
- oracle decode函数用法
DECODE函数是ORACLE PL/SQL是功能强大的函数之中的一个,眼下还仅仅有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一 ...
- tlplayer for ios V1.0
此程序UI修改于虎跃在线课堂.所以极其相似. 可以播放网络视频与本地视频,不知道怎么拷贝本地视频到Ipad或iphone上看的朋友,请自己到网上看教程. 支持mms,file,rtsp,rtmp,ht ...
- linux进程之fork 和 exec函数
---恢复内容开始--- fork函数 该函数是unix中派生新进程的唯一方法. #include <unistd.h> pid_t fork(void); 返回: (调用它一次, 它 ...
- 一步一步学c#(六):数组
数组 简单数组 如果需要使用同一个类型的多个对象,就可以使用数组.数组是一种数据结构,它可以包含同一类型的多个元素. 数组声明:int[] myArray 使用new运算符,指定数组中元素的类型和数量 ...
- XML 文档解析操作
sing System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security; ...
- css3选择器的比较(二) -- 包含字符串
二. 包含“字符串” 两种用法的区别是: a. “~=”,需要用空格分割, b. "*=",不需要任何分隔符 1. 资料 a) b) 2. html代码 <div tit ...