使用PHPExcel导出Excel表

 更新时间:2018年09月08日 15:59:24   作者:月之海的记忆   我要评论

这篇文章主要为大家详细介绍了使用PHPExcel导出Excel表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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消息队列用法实例分析

    这篇文章主要介绍了PHP消息队列用法,结合实例形式分析了PHP消息队列用于Linux下进程间通信的相关技巧,需要的朋友可以参考下
    2016-02-02
  • php 防止单引号,双引号在接受页面转义

    php 防止单引号,双引号在接受页面转义

    在使用php的过程中,我们需要使用单引号和双引号,所以需要转义一下
    2008-07-07
  • FCKeditor添加自定义按钮

    FCKeditor添加自定义按钮

    我想在FCKeditor 中的工具栏上添加一个按钮,在哪个配置文件中修改?答案很简单。
    2008-03-03
  • php使用codebase生成随机数

    php使用codebase生成随机数

    这篇文章主要介绍了php使用codebase生成随机数的示例,需要的朋友可以参考下
    2014-03-03
  • PHP程序员最常犯的11个MySQL错误小结

    PHP程序员最常犯的11个MySQL错误小结

    对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。
    2010-11-11
  • php实现的用户查询类实例

    php实现的用户查询类实例

    这篇文章主要介绍了php实现的用户查询类,实例分析了php针对用户查询与判断的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PHP 图片上传代码

    PHP 图片上传代码

    昨天晚上自学的一段代码到公司来调试。很顺利,到了中午的时候基本上添加、修改、删除,这些在代码世界中最基础的功能都基本实现了,蛮有成就感的。
    2011-09-09
  • PHP实现邮件群发的源码

    PHP实现邮件群发的源码

    本篇文章是对用PHP实现邮件群发的代码进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 在WAMP环境下搭建ZendDebugger php调试工具的方法

    在WAMP环境下搭建ZendDebugger php调试工具的方法

    一直以来,写php都是用Dreamweaver,有时候真是痛苦啊,出现一个bug,想看一些元素的值,必须用echo输出来才知道,现在了解到一个断点调试利器,php终于也能像java、.NET那样断点调试,这就是——ZendDebugger
    2011-07-07
  • PHP 数据库 常见问题小结

    PHP 数据库 常见问题小结

    揭露 PHP 应用程序中出现的五个常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案。
    2009-06-06

最新评论