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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
Php注入点构造代码
Jun 14 PHP
PHP中常用数组处理方法实例分析
Aug 30 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
php生成扇形比例图实例
Nov 06 PHP
Yii操作数据库的3种方法
Mar 11 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
setTimeout学习小结
2017/02/08 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python requests指定出口ip的例子
2019/07/25 Python
为什么python比较流行
2020/06/19 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
一套软件测试笔试题
2014/07/25 面试题
学校安全生产承诺书
2014/05/23 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
2014年关工委工作总结
2014/11/17 职场文书
校长一岗双责责任书
2015/05/09 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
python非标准时间的转换
2021/07/25 Python
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript