这里使用PHPExcel的开源类

一个完整的实例:


<?php
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 "<script>location.href='{$_SERVER['REQUEST_URI']}';</script>"; 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<'{$lagreYear}-01-01 00:00:00'";
} $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<$lastIndex;$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 "<script language='javascript'> location.href='{$_SERVER['REQUEST_URI']}'; </script> ";
?> 

转载于:https://www.cnblogs.com/crazyant/archive/2011/02/23/2823776.html

PHP输出Excel实例代码相关推荐

  1. struts2 poi导出excel实例代码下载

    原文:struts2 poi导出excel实例代码下载 代码下载地址:http://www.zuidaima.com/share/1550463233526784.htm 页面展现成表格形式,添加ex ...

  2. python简单代码编写-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel――xlrd 2.python写excel――xlwt 1.读excel数据,包括日期等数据 ...

  3. python读取excel表格-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  4. python处理excel表格实例-使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...

  5. python处理excel表格实例-python读写Excel表格的实例代码

    本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xl ...

  6. 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)

    输出1000以内的素数的算法(实例代码) 代码如下所示: 复制代码 代码如下: #include "stdafx.h" #include #include bool IsSushu ...

  7. Linux质数合数的脚本,python输出100以内的质数与合数实例代码

    python输出100以内的质数与合数实例代码 具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for ...

  8. python输出变量代码_Python中变量的输入输出实例代码详解

    1.变量的输入: input函数: input() input("请输入银行卡密码") password = input("请输入银行卡密码") 变量名 = i ...

  9. python 写入第二列_python读写Excel表格的实例代码(简单实用)

    这篇文章主要介绍了python读写Excel表格的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下.需要先安装两个库:pip install xlrd.pip ...

最新文章

  1. 服务器选型:怎样的一款服务器产品才算是优秀的
  2. Python技巧:Docker框架的使用系列教程(一)
  3. 织梦 mail.class.php,详解织梦模板DEDECMS核心类TypeLink.class.php功能分析
  4. MyBatis增删改对二级缓存的影响
  5. python 写txt 换行_python 批配换行Numpy数组的保存与读取方法
  6. 内蒙古工业大学计算机科学与技术,计算机科学与技术的应用领域简述论文内蒙古工业大学.doc...
  7. 2017年12月计算机一级c,2017年12月计算机二级《C语言》强化模拟题(1)
  8. strcpy()、memcpy()、memmove()、memset()及其应用
  9. Python数据结构与算法(2.5)——循环链表
  10. 安装conntrack-tools
  11. shopnc B2B2C商城 Nginx下开启伪静态
  12. php asp网站本地调试,php/asp网站程序本地调试工具
  13. 关于老黄的DW2XLS一些小bug
  14. MATLAB:快速傅里叶变换(FFT)
  15. 西安千锋培训python
  16. 合并石子(三种方法)
  17. 华为防火墙笔记-加密与证书
  18. npm 报错 : npm ERR! Maximum call stack size exceeded npm ERR! A complete log of this run can be found
  19. bat批处理开发-wifi联网系列(4):连接wifi,获取本机ip、网关及dns,并通过ping对wifi网络的连通性可用性进行检测
  20. 2011腾讯海笔 大概题型(欢迎讨论)

热门文章

  1. elasticsearch全局analyzer声明
  2. WEB/H5性能优化总结
  3. RHCS集群原理概述
  4. 【原创】注意析构函数的使用
  5. 31-- 二叉搜索树的范围和
  6. 在vivado里用rtl描述_如何利用Vivado HLS处理许多位准确或任意精度数据类型
  7. 【R】语言第四课----读取文件
  8. 如何在一个html页面中提交两个post,如何在同一个页面上从Django和Ajax获得多个post请求?...
  9. grid autosport额外内容下载慢_清理大王app下载-清理大王v1.0安卓下载
  10. Linux: shell 中命令代换 $() 和 ``(有图有代码有真相!!!)