偶是菜鸟,我现在要用php实现这么一个功能:用户点击按钮后,把页面上的表格以excel文件的形式打开或者弹出下载对话框
之前用的JavaScript在客户端实现的直接打开到excel当中,在服务器上面点击可以打开excel,但是在客户端点击没有反应
我查了下,说是客户端执行有可能收客户端浏览器或者机器配置的限制,最好在服务器端实现,在客户端下载,各位高手能否指点一下啊,最好有代码,谢谢

解决方案 »

  1.   


    $file_type = "vnd.ms-excel";
         $file_ending = "xls";
         header("Content-Type: application/$file_type; charset=UTF-8");
         header("Content-Disposition : attachment; filename=emailaction.$file_ending");
         header("Pragma: no-cache");
         header("Expires: 0");
      $sep = "\t";
       echo "您的字段1\t";
       echo "您的字段2\t";
       echo "您的字段3\t";
       .
       .
       .   print("\n");
       $i = 0;
      while($row = mysql_fetch_row($res)) {
        $schema_insert = "";
        for($j=0; $j<$len;$j++) {
            if(!isset($row[$j]))
                $schema_insert .= "NULL".$sep;
            elseif ($row[$j] != "")
                $schema_insert .= "$row[$j]".$sep;
            else
                $schema_insert .= "".$sep;
        }
        $schema_insert = str_replace($sep."$", "", $schema_insert);
        $schema_insert .= "\t";
        print(trim($schema_insert));
        print "\n";
        $i++;
    }
    return (true);
    }
    用这段程序可以!
      

  2.   


    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 ) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
    return;
    }
    function Create_Xls_File($Data,$filename) {
    header("Cache-Control: public");
    header ('Content-type: application/vnd.ms-excel');
    header ("Content-Disposition: attachment; filename=".$filename.".xls"); xlsBOF();
    for($i=0;$i<count($Data);$i++){
    for($j=0;$j<count($Data[$i]);$j++){
    $value=iconv('utf-8','Shift-JIS',$Data[$i][$j]);
    xlsWriteLabel($i,$j,$value);
    }
    }
    xlsEOF();
    }
      

  3.   

    Create_Xls_File函数就是生成EXCEL文件的方法
    $data 是要导出的数据,数组形式
    $filename 是要到处的文件名
      

  4.   

    那是不是table里面的内容要用数组形式存储下来呢