php原生导出excel文件的两种方法(推荐)


Posted in PHP onNovember 19, 2016

第一种方法:

$filename='文件名称';
  $filetitle='你的标题';
  if($_POST){
    set_time_limit(10000);
    $title = '';
    ini_set('memory_limit','300M');
    header('Content-Type: application/vnd.ms-excel;charset=utf-8');
    $name = $title.".xls";
    header('Content-Disposition: attachment;filename='.$name.'');
    header('Cache-Control: max-age=0');
    $where = "1=1";
    $sql = "";
    $query = DB::Query($sql);
    // PHP文件句柄,php://output 表示直接输出到浏览器 
    $fp = fopen('php://output', 'a');
    // 输出Excel列头信息 
    $head = array('ID');
    //字符替换
    $p_new_lines = array("\r\n", "\n","\t","\r","\r\n", "<pre>","</pre>","<br>","</br>","<br/>");
    $p_change_line_in_excel_cell = '';

    foreach($head as $v){
      echo iconv('utf-8','gb2312',$v) . "\t";
    }
    echo "\n";
    // 计数器 
    $cnt = 0;
    // 每隔$limit行,刷新一下输出buffer,节约资源 
    $limit = 100000;
    // 逐行取出数据,节约内存
    while ($res = mysql_fetch_assoc($query)) {
      $cnt ++;
      if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题 
        ob_flush();
        flush();
        $cnt = 0;
      } 
      echo trim($res['id']). "\t";
      echo "\n";
    }

  }

第二种方法:

$filename='文件名称';
  $filetitle='你的标题';
  if($_POST){
    $title = '';
    ini_set('memory_limit','300M');
    header('Content-Type: application/vnd.ms-excel;charset=utf-8');
    $name = $title.".xls";
    header('Content-Disposition: attachment;filename='.$name.'');
    header('Cache-Control: max-age=0');
    echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"
      xmlns:x="urn:schemas-microsoft-com:office:excel"
      xmlns="http://www.w3.org/TR/REC-html40">
    <head>
      <meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT">
      <meta http-equiv=Content-Type content="text/html; charset=gb2312">
      <!--[if gte mso 9]><xml>
      <x:ExcelWorkbook>
      <x:ExcelWorksheets>
       <x:ExcelWorksheet>
       <x:Name></x:Name>
       <x:WorksheetOptions>
        <x:DisplayGridlines/>
       </x:WorksheetOptions>
       </x:ExcelWorksheet>
      </x:ExcelWorksheets>
      </x:ExcelWorkbook>
      </xml><![endif]-->
    </head>';
    $where = "1=1";

    $sql = " ";
    mysql_query('set names "utf8"');
    mysql_set_charset('utf8');
    $query = DB::Query($sql);

    // PHP文件句柄,php://output 表示直接输出到浏览器 
    $fp = fopen('php://output', 'a');
    // 输出Excel列头信息 
    $head = array('ID','xxx');
    //字符替换
    $p_new_lines = array("\r\n", "\n","\t","\r","\r\n", "<pre>","</pre>","<br>","</br>","<br/>");
    $p_change_line_in_excel_cell = '';
    echo "<table>";
    echo "<tr>";
    foreach($head as $v){
      echo "<td>".iconv('utf-8','gb2312',$v)."</td>";
    }
    echo "</tr>";
    // 逐行取出数据,节约内存
    while ($res = mysql_fetch_assoc($query)) {
      echo "<tr>";
      echo "<td style='vnd.ms-excel.numberformat:@'>".$res['id']."</td>";
      echo "<td>".iconv('utf-8', 'gb2312', $res['xxx']."</td>";
      echo"</tr>";
    }
    echo "</table>";
  }

以上这篇php原生导出excel文件的两种方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
如何去掉文章里的 html 语法
Oct 09 PHP
PHP 实用代码收集
Jan 22 PHP
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
php中定时计划任务的实现原理
Jan 08 PHP
php数组去重的函数代码
Feb 03 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
php实现的递归提成方案实例
Nov 14 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
Laravel模糊查询区分大小写的实例
Sep 29 PHP
php socket通信简单实现
Nov 18 #PHP
php微信开发之自定义菜单实现
Nov 18 #PHP
php微信开发之百度天气预报
Nov 18 #PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 #PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 #PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 #PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 #PHP
You might like
DIY实用性框形天线
2021/03/02 无线电
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
Python求出0~100以内的所有素数
2018/01/23 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
python中K-means算法基础知识点
2021/01/25 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
HTML5文档结构标签
2017/04/21 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
.NET常见笔试题集
2012/12/01 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
食品药品安全责任书
2015/05/11 职场文书
感动中国何玥观后感
2015/06/02 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
Python打包exe时各种异常处理方案总结
2021/05/18 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
html5调用摄像头实例代码
2021/06/28 HTML / CSS