使用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 相关文章推荐
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
php获取远程文件的内容和大小
Nov 03 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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+DBM的同学录程序(5)
2006/10/09 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
python 命令行传入参数实现解析
2019/08/30 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
python regex库实例用法总结
2021/01/03 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
吃空饷专项治理工作实施方案
2014/03/04 职场文书
办理信用卡工作证明
2014/09/30 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers