代码之家  ›  专栏  ›  技术社区  ›  suresh

要在php中下载excel文件时显示progressbar吗

  •  0
  • suresh  · 技术社区  · 6 年前

    这是我从表中下载Excel格式数据的代码。但我不知道在下载Excel时如何使用进度条。

    有人能帮我怎么做吗?

    这是我的密码:

    <?php
    if(isset($_POST['submit']))
    {
    
    /*******EDIT LINES 3-8*******/
    $DB_Server = "localhost"; //MySQL Server    
    $DB_Username = "root"; //MySQL Username     
    $DB_Password = "";             //MySQL Password     
    $DB_DBName = "project";         //MySQL Database Name  
    $DB_TBLName = "users123"; //MySQL Table Name   
    $filename = "usersdata";         //File Name
    /*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/    
    //create MySQL connection   
    $sql = "Select * from $DB_TBLName";
    $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
    //select database   
    $Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());   
    //execute query 
    $result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());    
    $file_ending = "xls";
    //header info for browser
    header("Content-Type: application/xls");    
    header("Content-Disposition: attachment; filename=$filename.xls");  
    header("Pragma: no-cache"); 
    header("Expires: 0");
    /*******Start of Formatting for Excel*******/   
    //define separator (defines columns in excel & tabs in word)
    $sep = "\t"; //tabbed character
    //start of printing column names as names of MySQL fields
    for ($i = 0; $i < mysql_num_fields($result); $i++) {
    echo mysql_field_name($result,$i) . "\t";
    }
    print("\n");    
    //end of printing column names  
    //start while loop to get data
        while($row = mysql_fetch_row($result))
        {
            $schema_insert = "";
            for($j=0; $j<mysql_num_fields($result);$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 = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
            $schema_insert .= "\t";
            print(trim($schema_insert));
            print "\n";
        } 
        }  
    ?>
    
    <form method="post" action="">
    <button type="submit" name="submit" class="btn btn-default">Download Excel</button>
    
        </form>
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   Matthew Knight    6 年前

    您无法直接在PHP中解决这个问题,因为PHP是完全经过处理的,然后发送到浏览器。您需要将Javascript(可能是ajax请求)和PHP结合起来,以实现您想要做的事情。

    How would you create a progress bar with AJAX/jQuery for downloading XML content?