对了,用写文件的方法,不用下边的方法
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=url_20060605.xls");

解决方案 »

  1.   

    我要循环把多行写到EXCEL中,下边这段只能写一行,请问要怎么写呢while (!feof($log)) 
    {
        .........    if ( substr($logarr[8],0,3) == "10" ) {
            $out = $logarr[0]."\t".$logarr[1]."\t".$logarr[2]."\t".$logarr[3]."\t".$logarr[4]."\t\n"    $fp=fopen('log.xls','w');
        fwrite($fp, $out);
        fclose($fp);    }}fclose($log);
      

  2.   

    <?
    /*
        Name: ToExcel
        Author: Riyao Chen
        Version: 0.0.1
        Date: 2006-05-15
        License: GPL
    *//****************************************
    //This class is to change data from query to excel file
    //SQL FORMAT:
     SELECT c_id,c_title,c_subject FROM news_content WHERE c_parid=0 ORDER BY c_date desc,c_clicks desc
    //The DataBase connection is open outside;
    //Parameter:$sql,The query sentence ;$database,which database
    ***********************************/
    class ToExcel
    {
     var $sql="";
     var $fields; var $db;
     
     function ToExcel($sql,$database)
     {
      if($sql == "")
       return $this->errorMessage("NO QUERY SENTENCE!");  $this->db = $database;
      
      //Get Table Name 
      $tmp=ereg_replace("SELECT.+FROM ","",$sql);
      $tmp=ereg_replace("ORDER BY.+","",$tmp); 
      $this->table = ereg_replace(" WHERE.+","",$tmp);
      //Get Fields 
      $field = ereg_replace("SELECT ","",$sql);
      $field = ereg_replace(" FROM.+","",$field);
      if(trim($field) == "*")
       $this->fields = $this->GetFieldList($this->table);//$mysql->GetFieldList($this->table);
      else
       $this->fields = explode(",",$field);
       
      $this->sql = $sql;
      
      }
     
     function ShowExcel()
     {  
      header("Content-type:application/vnd.ms-excel");
      header("Content-Disposition:filename=Excel.xls");
      
      //OutPut Fields Start
      foreach($this->fields as $key=>$value)
      {
       echo $value."\t";
       
       }
      echo "\n";
      //OutPut Fields End
      
      //OutPut Field Value Start   
      $result = mysql_query($this->sql);
      while($row = mysql_fetch_array($result))
      {
       foreach($this->fields as $key=>$value)
        echo iconv("utf-8","gb2312",$row[$value]."\t");   echo "\n";
       }
       
      //OutPut Field Value End
      
      }
     
     //Get The FieldLis
     function GetFieldList($table)
     {
      if($result=mysql_list_fields($this->db,$table)){
                 $i=0;
                 while($i < mysql_num_fields($result)){
                     $fd_names[$i]=mysql_field_name($result,$i);
                     $i++;
                 }
                 return($fd_names);
                 
             }else
                  return $this->errorMessage("Unable to find any field list in table: $tbl_name");  }
     
      function errorMessage($msg){
             echo "Error: $msg : ".mysql_error();
      return false;
          }
      
     }
     /*
    exemple$sql = "SELECT * FROM news_content WHERE c_parid=0 ORDER BY c_date desc,c_clicks desc";
    $excel = new ToExcel($sql,DATABASE_NAME);
    $excel->ShowExcel();*/
    ?>
      

  3.   

    excel 也是一种数据库,你可以试试 用odbc 的方式来连接这个数据库,来将数据写进去。excel 应该是支持 odbc的 或者说jet 德也应该可以。
      

  4.   

    在任何输出前加
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:filename=".$filename);每一个单元格结束时输出 “\t”
    需要换行时输出“ \n”