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 ListView的上部下拉刷新下部点击加载更多具体实现及拓展
android ListView的上部下拉刷新下部点击加载更多具体实现及拓展 ListView下拉刷新,上拉自动加载更多 下拉刷新以及加载更多
- R使用入门
R是一个开源的统计学软件包,用于数据计算,绘图等等用途,看介绍与大数据走得比较近. 入门还是很简单的,安装文件也非常的小. 官网网站,下载对应系统的安装包,55M,比matlab小多了,像操作系统 ...
- How to choose between zombie.js and PhantomJS for automated web testing? [closed]
How to choose between zombie.js and PhantomJS for automated web testing? [closed] How to choose betw ...
- ceph之纠删码
转自:http://m.blog.csdn.net/blog/skdkjxy/45695355 一.概述 按照误码控制的不同功能,可分为检错码.纠错码和纠删码等. 检错码仅具备识别错码功能 而无纠正错 ...
- 浅谈JDBC(二)
JDBC中的事务 简单来说,事务就是要保证一组DAO方法的操作,要么一起成功要么一起失败. 1.事务控制的位置 在Service中的业务方法内进行事务控制. 2.事务控制的代码 a.注意:JDBC会自 ...
- mysql server5.6.28 修改数据目录
1.查看配置文件 mysql --help | grep my.cnf 列出使用哪个配置文件(顺序推) 2.service mysql stop 3.创建新目录 mkdir /data 4.迁移之前的 ...
- cocos2d-x教程1 hello world
HelloworldScene.h #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos ...
- 手工部署Sqlserver CLR程序集
原文 手工部署Sqlserver CLR程序集 以前一直用VS部署Sqlserver CLR程序集简单省事,现在服务器部署在内网了,必须手动更新部署Sqlserver CLR程序集. 开始以为A ...
- JAVA GUI学习 - 总结
一:项目 二:重要组件补充 三:组件高级操作
- JAVA GUI学习 - JFileChooser文件选择器组件学习:未包括JFileChooser系统类学习
public class JFileChooserKnow { /** * @param args */ public static void main(String[] args) { // TOD ...