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将数据库导出成excel的方法
May 07 PHP
PHP字符串处理的10个简单方法
Jun 30 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
php递归创建目录的方法
Feb 02 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
php连接mysql数据库
Mar 21 PHP
PHP微信H5支付开发实例
Jul 25 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
mysql5写入和读出乱码解决
2006/11/25 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
javascript创建函数的20种方式汇总
2015/06/23 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
js运动应用实例解析
2015/12/28 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python ATM功能实现代码实例
2020/03/19 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
电子信息专业学生自荐信
2013/11/09 职场文书
校园新闻广播稿
2014/01/10 职场文书
高三政治教学反思
2014/02/06 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
法定代表人身份证明书
2015/06/18 职场文书
读书笔记格式
2015/07/02 职场文书
幼儿园小班班务总结
2015/08/03 职场文书