这里使用PHPExcel的开源类

一个完整的实例:

require_once("../includes/function.php"); //提供了SQL注入检测函数inject_check

require_once("../class/DB.php"); //DB操作类,自己扩展一下

$db = new DB();

if($_GET['show_year']){

$_GET['show_year'] = inject_check($_GET['show_year']);

} else {

echo "";

return;

}

//查出开设预约的班级的学生名单

$sql = "select * from bishe_student,student where bishe_student.sno=student.sno ";

if($_GET['show_year'] && $_GET['show_year']!='-1'){

$lagreYear = $_GET['show_year']+1;

$sql .= " and bishe_student.time>='{$_GET['show_year']}

-01-01 00:00:00' and bishe_student.time

}

$sql .= "order by bishe_student.time asc; ";

$rs = $db->query($sql);

/**

*该PHP代码块开始为能够输出EXCEL文件作准备

*/

第一步,开头操作,包括引入类、设定文件基本属性

require_once("../Excel/Classes/PHPExcel.php");

require_once("../Excel/Classes/PHPExcel/Writer/Excel5.php");

//单元格的字母坐标

$colx = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s'

,'t','u','v','w','x','y','z','aa','ab','ac','ad','ae','af','ag','ah','ai','ak','al',

'am','an','ao','ap','aq','ar','as','at','au','av','aw','ax','ay','az');

// 创建一个处理对象实例

$objExcel = new PHPExcel();

// 创建文件格式写入对象实例, uncomment

$objWriter = new PHPExcel_Writer_Excel5($objExcel);

//设置文档基本属性

$objProps = $objExcel->getProperties();

$objProps->setCreator( gbkToUtf8("计算机学院专业实践中心") );

$objProps->setLastModifiedBy( gbkToUtf8("计算机学院专业实践中心") );

$objProps->setTitle( gbkToUtf8("毕业设计预约学生表") );

$objProps->setSubject( gbkToUtf8("毕业设计预约学生表") );

$objProps->setDescription( gbkToUtf8("毕业设计预约学生表") );

$objProps->setKeywords( gbkToUtf8("毕业设计预约学生表") );

$objProps->setCategory( gbkToUtf8("毕业设计预约学生表") );

//*******

//设置当前的sheet索引,用于后续的内容操作。

//一般只有在使用多个sheet的时候才需要显示调用。

//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0

$objExcel->setActiveSheetIndex(0);

$objActSheet = $objExcel->getActiveSheet();

//设置当前活动sheet的名称

$objActSheet->setTitle('sheet1');

//设置宽度

function setWidth($index,$width=5){

global $objActSheet;

$objActSheet->getColumnDimension(gbkToUtf8($index))->setWidth($width);

}

//宽度设置

for($i=0;$i<51;$i++){

//echo $colx[$i]."";

$ind = $colx[$i];

setWidth(gbkToUtf8("$ind"),11);

}

$objActSheet->getRowDimension(1)->setRowHeight(30);

$objActSheet->getRowDimension(2)->setRowHeight(20);

$objActSheet->getRowDimension(3)->setRowHeight(16);

//函数:设置border

function setBorder($index){

global $objActSheet;

$objActSheet->getStyle($index)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objActSheet->getStyle($index)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objActSheet->getStyle($index)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objActSheet->getStyle($index)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objActSheet->getStyle($index)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objActSheet->getStyle($index)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objActSheet->getStyle($index)->getAlignment()->setWrapText(true);

}

//设置值

function setValue($index,$value){

global $objActSheet;

$objActSheet->setCellValue($index,gbkToUtf8($value) );

}

//设置值

function setValueGBK($index,$value){

global $objActSheet;

$objActSheet->getCell($index)->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING);

}

//合并单元格

function merge($fc,$lc){

global $objActSheet;

$objActSheet->mergeCells($fc.":".$lc);

}

//********************开始写入数据

$lastIndex = 10;

$objActSheet->setCellValue('A1',gbkToUtf8( '毕业设计上机预约学生表' ) );

//合并单元格

$objActSheet->mergeCells("A1:".$colx[$lastIndex]."1");

//设置样式

$objStyleA1 = $objActSheet->getStyle('A1');

$objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objFontA1 = $objStyleA1->getFont();

$objFontA1->setName('Courier New');

$objFontA1->setSize(18);

$objFontA1->setBold(true);

$rowIndexB = 3;

function showBottomRows($xuhao='序号',$xuehao='学号',

$xingming='姓名',$bishelaoshi='毕设老师',$bishetimu='毕设题目',

$phone='电话',$email='Email',$beizhu='备注'){

global $colx;

global $rowIndexB;

$colIndexB = 0;

//都分三步,设值、合并、边框

//序号

setValue($colx[$colIndexB].$rowIndexB , $xuhao);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB].$rowIndexB );

$colIndexB = $colIndexB+1;

//学号

setValue($colx[$colIndexB].$rowIndexB , $xuehao);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB].$rowIndexB );

$colIndexB = $colIndexB+1;

//姓名

setValue($colx[$colIndexB].$rowIndexB , $xingming);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB].$rowIndexB );

$colIndexB = $colIndexB+1;

//毕设老师

setValue($colx[$colIndexB].$rowIndexB , $bishelaoshi);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB].$rowIndexB );

$colIndexB = $colIndexB+1;

//毕设题目

setValue($colx[$colIndexB].$rowIndexB , $bishetimu);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB+2].$rowIndexB );

$colIndexB = $colIndexB+3;

//电话

setValue($colx[$colIndexB].$rowIndexB , $phone);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB].$rowIndexB );

$colIndexB = $colIndexB+1;

//Email

setValue($colx[$colIndexB].$rowIndexB , $email);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB+1].$rowIndexB );

$colIndexB = $colIndexB+2;

//备注

setValue($colx[$colIndexB].$rowIndexB , $beizhu);

merge($colx[$colIndexB].$rowIndexB , $colx[$colIndexB].$rowIndexB );

$colIndexB = $colIndexB+1;

for($xx=0;$xx

setBorder($colx[$xx].$rowIndexB);

}

$rowIndexB++;

}

showBottomRows();

//***表格头部结束

第一步结束,第二步就可以开始打印数据,在下面的主要函数里面

$order=1;

while($row = $db->getRows($rs)){

showBottomRows(

$order++ ,

" ".$row['sno'],

" ".$row['sname'] ,

" ".$row['bishe_teacher'],

" ".$row['bishe_title'],

" ".$row['bishe_phone'],

" ".$row['bishe_email'],

" "

);

}

//刷新border

for($i=0;$i<=$lastIndex;$i++){

$objStyleA3 = $objActSheet->getStyle('A3');

$objStyleA3->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objStyleA3->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objStyleA3->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objStyleA3->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$objStyleA3->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objStyleA3->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

//$objActSheet->duplicateStyle($objStyleA3, 'A3:'.$colx[$lastIndex].(mysql_num_rows( $result_stuList )+3) );

$objActSheet->duplicateStyle($objStyleA3, 'A3:'.$colx[$lastIndex].($db->getRowsNum($rs)+3) );

}

$cancel_time=date("YmdHis");

$outputFileName = "{$cancel_time}bisheYuyueStudentList.xls";

//到文件

$objWriter->save('../temp/'.$outputFileName);

header("Content-Type: application/OCTET-STREAM");

header("Content-Disposition: inline; filename={$_GET['show_year']}年毕业设计上机预约学生表.xls");

readfile('../temp/'.$outputFileName);

echo "

location.href='{$_SERVER['REQUEST_URI']}';

";

?>

php生成excel完整实例代码,PHP输出Excel实例代码相关推荐

  1. python pandas处理excel 统计数据_pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?...

    Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 关键词: python.pandas.to_excel.文本形式存储 ...

  2. matlab中实现文字和数字和混输出excel

    做一个小程序时,需要数据和文字混合输出到,直接构建这样的矩阵在matlab中行不通 于是有了下列的代码: %输出excel表格 excel_outpath='F:\Work\paper_work\pa ...

  3. php生成excel完整实例代码,php生成excel列序号代码实例

    php生成excel列序号代码实例 发布于 2015-02-01 11:55:57 | 112 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext P ...

  4. PHP输出Excel实例代码

    这里使用PHPExcel的开源类 一个完整的实例: <?php require_once("../includes/function.php"); //提供了SQL注入检测函 ...

  5. 完整的thinphp+phpexcel实现excel报表的输出(有图有效果)

    准备工作: 1.下载phpexcel1.7.6类包: 2.解压至TP框架的ThinkPHP\Vendor目录下,改类包文件夹名为PHPExcel176,目录结构如下图:        编写代码(以一个 ...

  6. php双月日历代码,PHP输出日历表代码实例

    搜索热词 <PHP实例:PHP输出日历表代码实例>要点: 本文介绍了PHP实例:PHP输出日历表代码实例,希望对您有用.如果有疑问,可以联系我们. 月历表 $MONTH = array(& ...

  7. java代码查询索引文件实例_关于使用pdfbox的对PDF文件通过lucene生成索引文件IndexPDFFiles类代码示例...

    一.前言 下面通过pdfbox的pdfbox-2.0.9源码中org.apache.pdfbox.examples.lucene.IndexPDFFiles索引PDF文件生成类,基于apache的lu ...

  8. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-代码解析...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET S ...

  9. java继承矩形例子代码_Java代码实现矩形覆盖实例

    Java代码实现矩形覆盖实例 题目 我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法? 程序核心思想 2*(n-1)的方块 ...

  10. python画统计图代码_python读取excel某列内容制作词云图并用条形图统计词频

    有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起. 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体. # ...

最新文章

  1. Nagios---NRPE
  2. 安卓第三阶段实训项目:基于网络乐库音乐播放器V1.0
  3. 对spinner小结
  4. CDMA,GSM,WCDMA,TD-SCDMA,CDMA2000,3G的区别
  5. FishC笔记—18 讲 函数:灵活即强大
  6. 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第7章 数据挖掘
  7. wifi信号桥怎么设置_手机设置路由器WDS桥连方法
  8. VSCode更改默认浏览器
  9. 装修服务转战线上,VR全景为您解决装修行业痛点!
  10. 干货分享:实用/高效/有逼格的Android Studio 常用配置/插件推荐
  11. 什么是搜索引擎蜘蛛(spider)
  12. [Linux-网络性能测试] -- netperf测试
  13. 前端框架MVC和MVVM的理解
  14. 三星 android 4.4.4,三星Galaxy设备什么时候升级Android 4.4.4
  15. 制造商将注意力转向轻质量以进一步提高LED市场份额
  16. wifidog 源码初分析(三)
  17. PG332 ERNIC Datasheet Translation
  18. 天润融通java面试_【天润融通怎么样?】-看准网
  19. mysql查询并计算单价,sql语句查询今年单价总金额
  20. guest用户计算机管理中没有,win10guest用户怎么开启 没有本地用户和组

热门文章

  1. WP7 剪贴板 Clipboard
  2. bugfree如何修改Bug7种解决方案的标注方法 .
  3. 07 SQL优化技术
  4. 查询用户表(按照依赖对象排序)
  5. Windows API一日一练(60)CreateIoCompletionPort和GetQueuedCompletionStatus函数
  6. 回网友:不用PPT怎么做咨询顾问?
  7. 第一节:Create React App
  8. linux监控系统软件下载,Linux系统资源监控工具(LinuxSysMonitor)
  9. 分类损失函数多元分类_二元分类为什么不能用MSE做为损失函数?
  10. oracle如何创建基表,创建本地基表的物化视图