PHPExcel是用来操作Office Excel文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel(BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV,Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

1首先下载PHPExcel插件 地址:https://github.com/PHPOffice/PHPExcel

2 导入项目中 我的目录结构如下 :

3,此代码可以兼容多种类型的表格:

  1. <?php
  2. namespace action\phpexcel;
  3. /**
  4. * Excel表 导出
  5. */
  6. class excelAction extends \action
  7. {
  8. /*
  9. *title excel標題
  10. *column 表格栏目
  11. *OrdersData 表格数据
  12. *footer 表格结束行显示文字
  13. */
  14. public function exportexcel($title,$column,$OrdersData,$footer){
  15. /*导入核心类*/
  16. include 'PHPExcel.php';
  17. require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls
  18. require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
  19. // Create new PHPExcel object
  20. $objPHPExcel = new \PHPExcel();
  21. // Set properties
  22. $objPHPExcel->getProperties()->setTitle($title);
  23. //set width
  24. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
  25. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
  26. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
  27. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(30);
  28. $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(30);
  29. $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(30);
  30. $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
  31. $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
  32. $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
  33. $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(20);
  34. $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);
  35. $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20);
  36. $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(45);
  37. $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20);
  38. $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(20);
  39. $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(20);
  40. $objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(20);
  41. $objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth(20);
  42. $objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth(20);
  43. $arr=['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'];
  44. //合并单元格
  45. $objPHPExcel->getActiveSheet()->mergeCells('A1:Z1');
  46. //设置表格头部栏目 set table header content
  47. $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $title.' 时间:'.date('Y-m-d H:i:s'));
  48. foreach ($column as $k => $v) {
  49. $objPHPExcel->setActiveSheetIndex(0)->setCellValue($arr[$k].'2',$v);
  50. }
  51. // Miscellaneous glyphs, UTF-8
  52. for($i=0;$i<count($OrdersData);$i++){
  53. foreach ($OrdersData[$i] as $k => $va) {
  54. $objPHPExcel->getActiveSheet(0)->setCellValue($arr[$k].($i+3), $va);
  55. }
  56. }
  57. //表格底部栏目
  58. $objPHPExcel->getActiveSheet()->mergeCells('A'.($i+3).':Z'.($i+3));
  59. $objPHPExcel->getActiveSheet(0)->setCellValue('A'.($i+3), $footer);
  60. // sheet命名
  61. $objPHPExcel->getActiveSheet()->setTitle($title);
  62. /* 生成到浏览器,提供下载 */
  63. ob_end_clean(); //清空缓存
  64. header('Content-Type: application/vnd.ms-excel');
  65. header('Content-Disposition: attachment;filename="'.$title.'('.date('Ymd-His').').xls"'); //日期为文件名后缀
  66. header('Cache-Control: max-age=0');
  67. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //excel5为xls格式,excel2007为xlsx格式
  68. $objWriter->save('php://output');
  69. }
  70. }

(注意:

title可以设置文件名称,标题,底部sheet;
cloumu表格标题 为以为数组[‘标题1’,’标题2’,’标题3’…,’标题n’];

data数据为二维数组array(0=>array(′′,′′,′′,′′...,′′),2=>array(′′,′′,′′,′′...,′′)......);
footer 设置表格底部的内容)

效果如图

合并单元格:
$objPHPExcel->getActiveSheet()->mergeCells(‘A1:F1’); //合并

$objPHPExcel->getActiveSheet()->unmergeCells(‘A1:F1’); // 拆分

加粗和居中
$objPHPExcel->getActiveSheet()->getStyle(‘A1’)->applyFromArray(
array(
‘font’ => array (
‘bold’ => true
),
‘alignment’ => array(
‘horizontal’ => PHPExcel_Style_Alignment::HORIZONTAL_CENTER
)
)
);

加边框
$objPHPExcel->getActiveSheet()->getStyle(‘A2:F2’)->applyFromArray(
array(
‘borders’ => array(
‘top’ => array(
‘style’ => PHPExcel_Style_Border::BORDER_THIN
)
)
)
);

表格导出时单元格换行效果:数据中需带有换行符( \n )
$objPHPExcel->setActiveSheetIndex(0)->getStyle(‘A1’)->getAlignment()->setWrapText(true);

php原生PHPExcel插件导表(附表格合并,加粗居中及加边框换行操作)的更多相关文章

  1. thinkphp5 composer安装phpexcel插件及使用

    1: 首先composer加载phpexcel插件 composer require phpoffice/phpexcel 2: 页面引入 use PHPExcel_IOFactory; use PH ...

  2. Hibernate原生SQL查询多表关联,SQL语句要注意的问题

    Hibernate原生SQL查询多表关联,SQL语句要注意的问题 @for&ever 2009-9-4 系统环境: MySQL5.1 Hibernate3.3 有如下的假定: 实体类 Ques ...

  3. phpexcel导出成绩表

    效果图如下: 代码如下:代码注释不全,请大家参考phpexcel中文帮助手册 <?php require_once 'PHPExcel.php'; function bfb($n) { retu ...

  4. Thinkphp5+PHPExcel实现批量上传表格数据功能

    http://www.jb51.net/article/129262.htm 1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHP ...

  5. 原生JS插件(超详细)

    作为一个前端er,如果不会写一个小插件,都不好意思说自己是混前端界的.写还不能依赖jquery之类的工具库,否则装得不够高端.那么,如何才能装起来让自己看起来逼格更高呢?当然是利用js纯原生的写法啦. ...

  6. 如何定义一个高逼格的原生JS插件

    插件的需求 我们写代码,并不是所有的业务或者逻辑代码都要抽出来复用.首先,我们得看一下是否需要将一部分经常重复的代码抽象出来,写到一个单独的文件中为以后再次使用.再看一下我们的业务逻辑是否可以为团队服 ...

  7. 自用Chrome插件推荐【附教程及下载】

    自用Chrome插件推荐[附教程及下载] 豆子   1,675 人赞同了该文章 2019.11.03更新 原文同步发布在我的个人博客 Chrome插件自用​blog.douzi.work 都是我自己一 ...

  8. .net解析csv(C#导表工具)

    前言 解析Excel有知名的NPOI库,(Java语言是POI),但是NPOI是不支持解析csv的. csv本质上也是文本文件,可以进行差异对比,更利于解决冲突. 本文对解析csv的几个.net的开源 ...

  9. js动态控制表单表格

    js动态控制表单表格,这里操作只讲,添加一行,删除一行,删除某一行某一列. 直接放代码: <!DOCTYPE html> <html> <head> <met ...

随机推荐

  1. Netty初见-三大组件-简单使用

    Netty系列文章目录 Netty初见-三大组件-简单使用 文件编程-更新中---- 目录 Netty系列文章目录 三大组件 Channel与Buffer Selector 简单使用(ByteBuff ...

  2. ASMCMD-8102: no connection to Oracle ASM

    通过ASMCMD命令连接ASM,Connected to an idle instance [root@shdb02 ~]# su - oracle [oracle@shdb02 ~]$ asmcmd ...

  3. Eureka Server 的 Instance Status 一直显示主机名问题

    Eureka Server 的 Instance Status 一直显示主机名问题 注册中心启动后,访问 http://localhost:8761/ 后: 如何调整为具体所在的服务器 IP 呢? 解 ...

  4. SpringMVC快速使用——基于注解

    SpringMVC快速使用--基于注解 1.引入依赖 <!-- 定义Spring版本 --> <properties> <spring.verson>5.3.8&l ...

  5. nginx配置后端映射(反向代理proxy_pass)

    说明:配置反向代理proxy_pass和location无关,location后面加不加 / 都可以 1.配置 proxy_pass 时,当在后面的 url 加上了 /,相当于是绝对路径,则 Ngin ...

  6. Typora教程

    写Mrakdown费事?Typora让你像写Word一样行云流水,所见即所得. ###简介 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显 ...

  7. JAVA语言学习day16--7月22日

    ###15用户选择功能 * A: 用户选择功能 * a: 案例代码 import java.util.ArrayList; import java.util.Scanner; /* * 超市管理系统主 ...

  8. 2021.12.08 [SHOI2009]会场预约(平衡树游码表)

    2021.12.08 [SHOI2009]会场预约(平衡树游码表) https://www.luogu.com.cn/problem/P2161 题意: 你需要维护一个 在数轴上的线段 的集合 \(S ...

  9. [AcWing 822] 走方格

    点击查看代码 #include<iostream> using namespace std; int n, m, ans = 0; void dfs(int x, int y) { if ...

  10. 完爆Docker!推荐你看下这个....

    现如今,互联网行业的每个人都知道数据的价值,很多人也为此学了一堆的数据分析工具,但面对问题,还是不知道如何去分析. 我们在奔向升职加薪的路上,总会遇到这些问题: 面对数据问题,没有思路,怎么办? 面对 ...