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 相关文章推荐
图书管理程序(二)
Oct 09 PHP
如何在PHP中进行身份认证
Oct 09 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
php header Content-Type类型小结
Jul 03 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
Linux下手动编译安装PHP扩展的例子分享
Jul 15 PHP
php获取twitter最新消息的方法
Apr 14 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 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去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
js统计页面的来访次数实现代码
2014/05/09 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
详解python基础之while循环及if判断
2017/08/24 Python
详解Python字典的操作
2019/03/04 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
土木工程师岗位职责
2013/11/24 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
学生安全责任书
2014/04/15 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
幽灵公主观后感
2015/06/09 职场文书
2015中学政教处工作总结
2015/07/22 职场文书