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 18 PHP
php连接mysql数据库代码
Mar 10 PHP
PHP 配置文件中open_basedir选项作用
Jul 19 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
php 生成签名及验证签名详解
Oct 26 PHP
php实现头像上传预览功能
Apr 27 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
Mar 12 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
php面向对象重点知识分享
Sep 27 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二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
两种php实现图片上传的方法
2016/01/22 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
使用JS动态显示文本
2017/09/09 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python新手实现2048小游戏
2015/03/31 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
详解Python 切片语法
2019/06/10 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Python eval函数原理及用法解析
2020/11/14 Python
会计实习生工作总结的自我评价
2013/10/07 职场文书
物业管理毕业生个人的求职信
2013/11/30 职场文书
工作人员思想汇报
2014/01/09 职场文书
电子商务实训报告总结
2014/11/05 职场文书
人事文员岗位职责
2015/02/04 职场文书
2016年五一促销广告语
2016/01/28 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书