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实现登陆验证码(类似条行码状)
Oct 09 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
openPNE常用方法分享
Nov 29 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
浅谈php7的重大新特性
Oct 23 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
YII框架关联查询操作示例
Apr 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
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
菊花转动的jquery加载动画效果
2018/08/19 jQuery
详解微信小程序canvas圆角矩形的绘制的方法
2018/08/22 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
VSCode搭建Vue项目的方法
2020/04/30 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Python连接Redis的基本配置方法
2018/09/13 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
机电一体化专业应届本科生求职信
2013/09/27 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA