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
桌面中心(二)数据库写入
Oct 09 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
基于empty函数的判断详解
Jun 17 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
使用ltrace工具跟踪PHP库函数调用的方法
Apr 25 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 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简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python 操作MySQL详解及实例
2017/04/30 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python实现按首字母分类查找功能
2019/10/31 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
《守株待兔》教学反思
2014/03/01 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
大学生新学期计划书
2014/04/28 职场文书
分公司任命书
2014/06/06 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
浅谈MySQL函数
2021/10/05 MySQL