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 printf输出格式使用说明
Dec 05 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
thinkphp中session和cookie无效的解决方法
Dec 19 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
php获取系统变量方法小结
May 29 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
php实现微信发红包
Dec 05 PHP
Zend Framework自定义Helper类相关注意事项总结
Mar 14 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 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数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
js实现分页功能
2017/05/24 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
经典C++面试题一
2016/11/06 面试题
口腔医学技术应届生求职信
2013/11/09 职场文书
有针对性的求职自荐信
2013/11/14 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
家长对孩子的感言
2014/03/10 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
庆七一主持词
2015/06/29 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python