为什么我导出来的数据, 都在一个单元格里,很奇怪,\T代表下一个单元格,\N代表下一行,请问怎么解决呀。

解决方案 »

  1.   


    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
           Header( "Content-type:   application/octet-stream "); 
    Header( "Content-type:application/vnd.ms-excel");   
    header("Content-Disposition:attachment;filename=amessage.xls");
    header("Content-Type:application/vnd.ms-excel;charset=UTF-8");
    echo "姓名"."\t"."性别"."\t"."生日"."\t"."身份证号"."\t"."民族"."\t"."籍贯"."\t"."政治面貌"."\t"."学历"."\n";
           for($i=1;$i<=$checknum;$i++){
           $sql="select * from `members` where id='".$checks[$i]."'";
           $result=mysql_query($sql);
           if($result){
           $result=mysql_fetch_row($result);
    //       for($i=1;$i<=16;$i++){
    //       iconv('utf-8','gbk',$result[$i]);
    //       }
           echo $result[1]."\t".$result[2]."\t".$result[3]."\t".$result[4]."\t".$result[5]."\t".$result[6]."\t".$result[7]."\t".$result[8]."\n";
           }
           }
          echo "<script>window.history.back(-1);</script>";这是我的代码
      

  2.   

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");;
    header("Content-Disposition: attachment;filename=".iconv("UTF-8", "gb2312", "导出文件").".xls "); 
    header("Content-Transfer-Encoding: binary ");
    function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
    return;
    }
    function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    return;
    }
    function xlsWriteNumber($Row, $Col, $Value) {
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
    echo pack("d", $Value);
    return;
    }
    function xlsWriteLabel($Row, $Col, $Value ) {
    $Value = iconv("UTF-8", "gb2312", $Value);//由于网页编码是UTF-8,需要用iconv转码.否则乱码
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
    return;
    }
    xlsBOF();
    xlsWriteLabel(0,0,"姓名");
    xlsWriteLabel(0,1,"性别");
    xlsWriteLabel(0,2,"生日");
    for($i=1;$i<=$checknum;$i++){
    $sql="select * from `members` where id='".$checks[$i]."'";
    $result=mysql_query($sql);
    if($result){
    $result=mysql_fetch_row($result);
    xlsWriteLabel($i,0,$result[1]);
    xlsWriteLabel($i,1,$result[2]);
    xlsWriteLabel($i,2,$result[3]);

    }
    }
    xlsEOF();想了很多办法都没有用,奇怪的问题还是会出现,
    最终用这个方法解决了,没有出现这个乱码问题。