使用PHPExcel导出Excel表

yipeiwu_com6年前PHP代码库

本文实例为大家分享了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;
 
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

PHP请求远程地址设置超时时间的解决方法

php请求远程地址设置超时时间,主要讲解file_get_contents、fopen、curl这三个简单常用函数设置超时时间的方法,一般情况下建议使用curl,性能最好,效率也最高。...

PHP封装的MSSql操作类完整实例

本文实例讲述了PHP封装的MSSql操作类。分享给大家供大家参考,具体如下: <?php /*MSSql的操作类*/ class MSSql { var $link...

PHP创建单例后台进程的方法示例

本文实例讲述了PHP创建单例后台进程的方法。分享给大家供大家参考,具体如下: 可以通过如下语句启动一个PHP后台进程: $command = " php script.php ";...

小文件php+SQLite存储方案

我们草根站长购买的虚拟主机往往都有文件数量限制,大量小文件占用大量资源,落伍精华区也有兄弟推荐豆瓣的解决方法,但是要有主机权限。只能另装思路,采用php+SQLite解决问题,经过我测试...

PHP调用Linux命令权限不足问题解决方法

业务背景:  yourcmd为我的linux程序,它对权限要求非常严格,当用php去执行yourcmd程序 系统:CentOS 6.3 apache是php的执行用户 用exe...