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 相关文章推荐
一道关于php变量引用的面试题
Aug 08 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
php除数取整示例
Apr 24 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
计算机软件专业求职信
2014/06/10 职场文书
大跃进口号
2014/06/16 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL