使用PHPExcel导出Excel表


Posted in PHP onSeptember 08, 2018

本文实例为大家分享了PHPExcel导出Excel表的具体代码,供大家参考,具体内容如下

/**
   * Excel导出
   * @param $fileName(文件名)
   * @param $headArr (表头)
   * @param $data  (每一行的数据)
   * @throws \PHPExcel_Exception
   * @throws \PHPExcel_Reader_Exception
   */
  function getExcel($fileName,$headArr,$data){
    include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel.php");
    include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/Writer/Excel2007.php");
    include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/Writer/Excel5.php");
    include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/IOFactory.php");
    if(empty($data) || !is_array($data)){
      die("data must be a array");
    }
    if(empty($fileName)){
      exit;
    }
    $date = date("Y_m_d",time());
    $fileName .= "_{$date}.xlsx";
 
    //创建新的PHPExcel对象
    $objPHPExcel = new \PHPExcel();
    $objProps = $objPHPExcel->getProperties();
 
    //设置表头
    $key = ord("A");
    $key2 = ord("A");
    $colum2 = '';
    $objActSheet = $objPHPExcel->getActiveSheet();
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);
    foreach($headArr as $v){
      $colum = chr($key);
      $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum2.$colum.'1', $v);
      if($key < 90){
        $key += 1;
      }else{
        $key = ord("A");
        $colum2 = chr($key2);
        $key2++;
      }
    }
    //exit;
    $column = 2;
 
    foreach($data as $key => $rows){ //行写入
      $span = ord("A");
      $span2 = ord("A");
      $j2 = '';
      foreach($rows as $keyName=>$value){// 列写入
        $j = chr($span);
        //$objActSheet->setCellValue($j.$column, $value);
        //把每个单元格设置成分文本类型
        //dump($j2.$j.$column);
        $objActSheet->setCellValueExplicit($j2.$j.$column,$value,\PHPExcel_Cell_DataType::TYPE_STRING);
 
        if($span < 90){
          $span += 1;
        }else{
          $span = ord("A");
          $j2 = chr($span2);
          $span2++;
        }
      }
      $column++;
    }
    // exit;
    $fileName = iconv("utf-8", "gb2312", $fileName);
    //重命名表
    $objPHPExcel->getActiveSheet()->setTitle('Simple');
    //设置活动单指数到第一个表,所以Excel打开这是第一个表
    $objPHPExcel->setActiveSheetIndex(0);
    //将输出重定向到一个客户端web浏览器(Excel2007)
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header("Content-Disposition: attachment; filename=\"$fileName\"");
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
//    if(!empty($_GET['excel'])){
//      $objWriter->save('php://output'); //文件通过浏览器下载
//    }else{
//      $objWriter->save($fileName); //脚本方式运行,保存在当前目录
//    }
    $objWriter->save('php://output');
    exit;
 
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在线短消息收发的程序,不用数据库
Oct 09 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
php blowfish加密解密算法
Jul 02 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
php数组和链表的区别总结
Sep 20 PHP
解决laravel session失效的问题
Oct 14 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 #PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 #PHP
php curl优化下载微信头像的方法总结
Sep 07 #PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 #PHP
PHP日志LOG类定义与用法示例
Sep 06 #PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 #PHP
php JWT在web端中的使用方法教程
Sep 06 #PHP
You might like
又一个php 分页类实现代码
2009/12/03 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
python实现linux下使用xcopy的方法
2015/06/28 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
总裁办公室主任职责
2014/01/02 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书