使用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 Pear 安装及使用
Mar 19 PHP
php 方便水印和缩略图的图形类
May 21 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
preg_match_all使用心得分享
Jan 31 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 PHP
PHP开发API接口签名生成及验证操作示例
May 27 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中对xml读取的相关函数的介绍一
2008/06/05 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
利用Python如何生成随机密码
2016/04/20 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
python中os.remove()用法及注意事项
2021/01/31 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
无传销社区工作方案
2014/05/13 职场文书
校车安全责任书
2014/08/25 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
尼克胡哲观后感
2015/06/08 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
学校团代会开幕词
2016/03/04 职场文书
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL