php原生导出excel文件的两种方法(推荐)

5年以前  |  阅读数:765 次  |  编程语言:PHP 

第一种方法:


    $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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例