PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。

    1. <?php
    2. /*
    3. * 导出EXCEL
    4. * 程序:刘兴
    5. * 时间:2010-6
    6. */
    7. ?>
    8. <?php
    9. require_once("connDB.php");//引入数据库连接参数
    10. require_once("PExcel/PHPExcel.php");
    11. ?>
    12. <?php
    13. $year=$_POST[year];
    14. $jd=$_POST[jd];
    15. set_time_limit(900);
    16. /** Error reporting */
    17. error_reporting(E_ALL);
    18. /** PHPExcel */
    19. $sqlxm="select count(*) as  cxm from khxm where lb=1 and isyx=0";
    20. $resultxm=mysql_query($sqlxm) or die("SQL语句执行错误!");
    21. $rowxm = mysql_fetch_array($resultxm);
    22. $c1=$rowxm['cxm'];
    23. $sqlxm="select count(*) as  cxm from khxm where lb=2 and isyx=0";
    24. $resultxm=mysql_query($sqlxm) or die("SQL语句执行错误!");
    25. $rowxm = mysql_fetch_array($resultxm);
    26. $c2=$rowxm['cxm'];
    27. $sqlxm="select count(*) as  cxm from khxm where lb=3 and isyx=0";
    28. $resultxm=mysql_query($sqlxm) or die("SQL语句执行错误!");
    29. $rowxm = mysql_fetch_array($resultxm);
    30. $c3=$rowxm['cxm'];
    31. // Create new PHPExcel object
    32. $objPHPExcel = new PHPExcel();
    33. // Set properties
    34. $objPHPExcel->getProperties()->setCreator("gxds");
    35. $objPHPExcel->getProperties()->setLastModifiedBy("gxds");
    36. $objPHPExcel->getProperties()->setTitle("gxdskhtj");
    37. $objPHPExcel->getProperties()->setSubject("gxdskhtj");
    38. $objPHPExcel->getProperties()->setDescription("gxdskhtj, gxds.");
    39. $objPHPExcel->getProperties()->setKeywords("gxdskhtj");
    40. $objPHPExcel->getProperties()->setCategory("gxtj result file");
    41. // Add some data
    42. $noshow = array("year", "time", "peopleid", "bm","kbm");
    43. $objPHPExcel->setActiveSheetIndex(0);
    44. $objActSheet = $objPHPExcel->getActiveSheet();
    45. $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(2, 3);
    46. $db=new mysqli("localhost","ssss","aaaaa","bbbb");
    47. mysqli_query($db,"SET NAMES utf8");
    48. $result=$db->query("call gxtj($year,$jd)");
    49. $i=4;
    50. while( $row = $result->fetch_array(MYSQLI_ASSOC))
    51. {
    52. $c=0;
    53. $zt=1;
    54. $totalfs=100;
    55. $tfs=0;
    56. $isstart=false;
    57. $j=65;
    58. $asc_cell=chr($j);
    59. while ($key=key($row)){
    60. $ex_title=$asc_cell."3";
    61. $ex_cell=$asc_cell.$i;
    62. $value=current($row);
    63. if (in_array($key, $noshow)) {
    64. next($row);
    65. continue;
    66. }
    67. if (is_numeric($value) or  is_null($value) ){
    68. if (is_null($value)) $value='0';
    69. if (!$isstart) {
    70. $isstart=true;
    71. $startasc=$asc_cell;
    72. $endasc=$asc_cell;
    73. }
    74. }
    75. if ($isstart){
    76. $c++;
    77. if ($zt==1){
    78. if ($c>$c1) {
    79. $zt++;
    80. $ge=$startasc.'2:'.$endasc.'2';
    81. $objActSheet->mergeCells("$ge");
    82. $objActSheet->setCellValue($startasc.'2',"岗位职责、效能考核");
    83. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()
    84. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    85. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()
    86. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    87. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()
    88. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    89. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()
    90. ->getStartColor()->setARGB('0DB0E59FF');
    91. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')
    92. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    93. $objPHPExcel->getActiveSheet()->getStyle($ex_title)
    94. ->getFont()->setBold(true);
    95. $startasc=$asc_cell;
    96. $endasc=$asc_cell;
    97. $totalfs-=$tfs;
    98. $tfs=0;
    99. $c=1;
    100. }
    101. else{
    102. $endasc=$asc_cell;
    103. }
    104. $tfs+=$value;
    105. if ($tfs>50) {
    106. $tfs=50;
    107. }
    108. }
    109. if ($zt==2){
    110. if ($c>$c2) {
    111. $zt++;
    112. $ge=$startasc.'2:'.$endasc.'2';
    113. $objActSheet->mergeCells("$ge");
    114. $objActSheet->setCellValue($startasc.'2',"考试");
    115. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()
    116. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    117. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()
    118. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    119. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()
    120. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    121. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()
    122. ->getStartColor()->setARGB('0DB0E59FF');
    123. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')
    124. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    125. $objPHPExcel->getActiveSheet()->getStyle($ex_title)
    126. ->getFont()->setBold(true);
    127. $startasc=$asc_cell;
    128. $endasc=$asc_cell;
    129. $totalfs-=$tfs;
    130. $tfs=0;
    131. $c=1;
    132. }
    133. else{
    134. $endasc=$asc_cell;
    135. }
    136. $tfs+=$value;
    137. if ($tfs>30) {
    138. $tfs=30;
    139. }
    140. }
    141. if ($zt==3){
    142. if ($c=$c3) {
    143. $zt++;
    144. $ge=$startasc.'2:'.$endasc.'2';
    145. $objActSheet->mergeCells("$ge");
    146. $objActSheet->setCellValue($startasc.'2',"科长考核");
    147. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()
    148. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    149. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getAlignment()
    150. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    151. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()
    152. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    153. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')->getFill()
    154. ->getStartColor()->setARGB('0DB0E59FF');
    155. $objPHPExcel->getActiveSheet()->getStyle($startasc.'2')
    156. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    157. $objPHPExcel->getActiveSheet()->getStyle($ex_title)
    158. ->getFont()->setBold(true);
    159. $startasc=$asc_cell;
    160. $endasc=$asc_cell;
    161. $totalfs-=$tfs;
    162. $tfs=0;
    163. $c=0;
    164. }
    165. else{
    166. $endasc=$asc_cell;
    167. }
    168. $tfs+=$value;
    169. if ($tfs>20) {
    170. $tfs=20;
    171. }
    172. }
    173. }
    174. $objActSheet->setCellValue($ex_title,$key);
    175. $objActSheet->setCellValue($ex_cell,$value);
    176. //设置单元格宽度
    177. $objActSheet->getColumnDimension($asc_cell)->setWidth(16);
    178. $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getAlignment()
    179. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    180. $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getAlignment()
    181. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    182. $objPHPExcel->getActiveSheet()->getStyle($ex_cell)->getAlignment()
    183. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    184. $objPHPExcel->getActiveSheet()->getStyle($ex_cell)->getAlignment()
    185. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    186. //设置填充格式及字体颜色
    187. $objPHPExcel->getActiveSheet()->getStyle($ex_cell)
    188. ->getNumberFormat()->setFormatCode('#,##0.00');
    189. $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getFill()
    190. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    191. $objPHPExcel->getActiveSheet()->getStyle($ex_title)->getFill()
    192. ->getStartColor()->setARGB('0DB0E50A1');
    193. $objPHPExcel->getActiveSheet()->getStyle($ex_title)
    194. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    195. //设置字体粗体
    196. $objPHPExcel->getActiveSheet()->getStyle($ex_title)
    197. ->getFont()->setBold(true);
    198. $j++;
    199. if ($j>90) {
    200. $j=65;
    201. $asc_cell="AA" ;
    202. }
    203. elseif (strlen($asc_cell)>1) {
    204. $asc_cell=substr($asc_cell,0,strlen($asc_cell)-1).chr($j);
    205. }
    206. else{
    207. $asc_cell=chr($j);
    208. }
    209. next($row);
    210. }
    211. $ge=$asc_cell.'2:'.$asc_cell.'3';
    212. $objActSheet->mergeCells("$ge");
    213. $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getAlignment()
    214. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    215. $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getAlignment()
    216. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    217. $objActSheet->setCellValue($asc_cell.'2',"总分");
    218. $objActSheet->setCellValue($ex_cell,$totalfs);
    219. //设置填充格式及字体颜色
    220. $objPHPExcel->getActiveSheet()->getStyle($ex_cell)
    221. ->getNumberFormat()->setFormatCode('#,##0.00');
    222. $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getFill()
    223. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    224. $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')->getFill()
    225. ->getStartColor()->setARGB('0DB0E59FF');
    226. //设置字体颜色
    227. $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')
    228. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    229. $objPHPExcel->getActiveSheet()->getStyle($asc_cell.'2')
    230. ->getFont()->setBold(true);
    231. $i++;
    232. }
    233. //标题栏合并单元格,并设置居中
    234. $objActSheet->setCellValue('A1',$year."年".$jd."季度绩效考核情况统计表");
    235. $value=$objPHPExcel->getActiveSheet()->getCell('A1')->getValue();;
    236. $ge='A1:'.$asc_cell.'1';
    237. $objActSheet->mergeCells("$ge");
    238. $objActSheet->setCellValue('A1',$value);
    239. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()
    240. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    241. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()
    242. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    243. $objPHPExcel->getActiveSheet()->getStyle('A1')
    244. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    245. $objPHPExcel->getActiveSheet()->getStyle('A1')
    246. ->getFont()->setBold(true);
    247. $objPHPExcel->getActiveSheet()->getStyle('A1')
    248. ->getFont()->setSize(26);
    249. //姓名栏合并单元格,并设置居中
    250. $value=$objPHPExcel->getActiveSheet()->getCell('A3')->getValue();;
    251. $ge='A2:A3';
    252. $objActSheet->mergeCells("$ge");
    253. $objActSheet->setCellValue('A2',$value);
    254. $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()
    255. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    256. $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()
    257. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    258. $objPHPExcel->getActiveSheet()->getStyle('A2')->getFill()
    259. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    260. $objPHPExcel->getActiveSheet()->getStyle('A2')->getFill()
    261. ->getStartColor()->setARGB('0DB0E59FF');
    262. $objPHPExcel->getActiveSheet()->getStyle('A2')
    263. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    264. $objPHPExcel->getActiveSheet()->getStyle('A2')
    265. ->getFont()->setBold(true);
    266. //科室栏合并单元格,并设置居中
    267. $value=$objPHPExcel->getActiveSheet()->getCell('B3')->getValue();;
    268. $ge='B2:B3';
    269. $objActSheet->mergeCells("$ge");
    270. $objActSheet->setCellValue('B2',$value);
    271. $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()
    272. ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    273. $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()
    274. ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    275. $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()
    276. ->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    277. $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()
    278. ->getStartColor()->setARGB('0DB0E59FF');
    279. $objPHPExcel->getActiveSheet()->getStyle('B2')
    280. ->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    281. $objPHPExcel->getActiveSheet()->getStyle('B2')
    282. ->getFont()->setBold(true);
    283. //单元格边框及颜色
    284. $objPHPExcel->getActiveSheet()->getStyle('A2:'.$ex_cell)->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    285. $objPHPExcel->getActiveSheet()->getStyle('A2:'.$ex_cell)->getBorders()->getAllBorders()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE);
    286. // sheet名称
    287. $objPHPExcel->getActiveSheet()->setTitle('绩效考核统计');
    288. // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    289. $objPHPExcel->setActiveSheetIndex(0);
    290. // Redirect output to a clients web browser (Excel5)通知下载
    291. $fn="gxtj-$year-$jd.xls";
    292. header('Content-Type: application/vnd.ms-excel; charset=utf-8');
    293. header("Content-Disposition: attachment;filename=$fn");
    294. header('Cache-Control: max-age=0');
    295. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    296. $objWriter->save('php://output');
    297. exit;
    298. ?>

PHPEXCEL实例-导出EXCEL的更多相关文章

  1. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

  2. tp5.0 composer下载phpexcel 实现导出excel 表格

    tp5.0 composer下载phpexcel 实现导出excel 表格 1.在下载好的tp5.0 框架里面使用 composer 下载phpexcel 的插件 composer require p ...

  3. tp5使用PHPexcel扩展导出excel表

    1,使用composer安装phpexcel包: composer require phpoffice/phpexcel 2,在控制器中创建方法: (1)使用PHPexcel扩展.代码如下 /** * ...

  4. phpcms 用phpexcel导入导出excel

    html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...

  5. phpexcel 导入导出excel表格

    phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...

  6. 利用PHPExcel快速导出excel

    <?php $objPHPExcel = new PHPExcel(); $objSheet = $objPHPExcel->getActiveSheet(); $array = arra ...

  7. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  8. PHP导入导出excel表格图片的代码和方法大全

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  9. php两种导出excel的方法

    所需要的:jquery库,phpexcel插件,页面导出excel效果测试文件explode.php,excel导出功能实现文件exp.php和explode_excel.php,文件相关内容在此文下 ...

随机推荐

  1. Git学习 -- 远程仓库

    第1步:创建SSH Key 在用户目录下的.ssh目录中,查看是否有id_rsa和id_rsa.pub两个文件,若没有则通过以下命令生成秘钥对: $ ssh-keygen -t rsa 第2步:登陆G ...

  2. .NET中公共变量与属性的区别

    在我们的程序中经常会出现以下的代码:  如:     成员变量     public   string   Name;     或者用属性     private   string   name    ...

  3. Mysql命令-求一列字段的总和

    求和命令 mysql> select SUM(price) from order where create_time>'2016-03-12';+------------+| SUM(pr ...

  4. SD卡的SPI模式的初始化顺序(转)

    为了使SD卡初始化进入SPI模式,我们需要使用的命令有3个:CMD0,ACMD41,CMD55(使用ACMD类的指令前应先发CMD55,CMD55起到一个切换到ACMD类命令的作用). 为什么在使用C ...

  5. VI中的批量替换 (转载)

      1) 文件内全部替换:   :%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g)   --注:把abc替换成123   (或者: %s/str1/str2/g 用s ...

  6. mkconfig文件解析

    #!/bin/sh -e #mkconfig 100ask24x0 arm arm920t 100ask24x0 Null s3c24x0#s0                     s1      ...

  7. CodeForces 158DIce Sculptures(枚举)

    一个暴力的枚举,枚举组成正多边形需要对应覆盖原先的几条边,范围为(1,n/3),然后维护最大值就可以了,注意初始化为-inf. #include<stdio.h> #include< ...

  8. USACO Section 1.1 Friday the Thirteenth 解题报告

    题目 题目描述 黑色星期五是否真的是一件不同寻常的事情?按理来说每个月的13号可能是星期一,或者是星期二...或者是星期天,但是黑色星期五的存在让我们不禁开始猜想,难道每个月的13号刚好是星期五的频率 ...

  9. 更少的直接百度,更多的取看API

    很多时候我们会对于一个jar包中的一个类的某个方法犯迷糊 我们不知道传进去什么样子的参数,这个方法的返回值到底是什么样的. 更多的时候我们不知道这个jar中有没有我们想要的这个方法. 很多时候以前我都 ...

  10. Android网络开发之OkHttp--基本用法GET

    1.OkHttp框架使用了OkIo.jar包,不要忘记添加. 2.对于Request对象是如何实例化的,大家可以参考--java builder设计模式 http://www.cnblogs.com/ ...