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 IP及IP段进行访问限制的代码
Dec 17 PHP
PHP之COOKIE支持详解
Sep 20 PHP
php与paypal整合方法
Nov 28 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
thinkphp 验证码 的使用小结
May 07 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 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下escape解码函数的实现方法
2010/08/08 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
用jquery存取照片的具体实现方法
2013/06/30 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
jQuery选择器全集详解
2014/11/24 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
vue实现简单图片上传
2020/06/30 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python内置函数reversed()用法分析
2018/03/20 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
VC++笔试题
2014/10/13 面试题
小学科学教学反思
2014/01/26 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript