如何使用AJAX调用&amp ;;将数据从数据库导出到Excel中JavaScript的?

时间:2017-02-06 14:19:05

标签: javascript php sql ajax excel

我有listbox包含一些Farmers ID,我想从数据库中获取详细信息(电话号码,地址等)并将其导出到Excel文件,我想用AJAX调用来获取数据从数据库,但我怎样才能将这些数据导出到Excel文件?

JavaScript代码:

function ExportData()
{
    var ul = document.getElementById("FarmersID");
    var items = ul.getElementsByTagName("option");
    var farmers=[];

    if (items.length == 0)
    {
        alert ("No Farmers Found!");
        return false;
    }
    else
    {
        for (var i = 0; i < items.length; ++i) 
        {
            farmers.push(items[i].text);
        }
        var jsonString = JSON.stringify(farmers);

        $.ajax({
            type:"POST",
            url:"get_farmerdata.php",
            data:
                { 
                   'FarmerData':jsonString
                },
            success: function (response) 
                {
                    alert(response);
                },
            error: function(jqXHR, textStatus, errorThrown) {
            console.log('ERROR', textStatus, errorThrown);
            }
       })
   }
}

PHP代码:

<html>
<?php
    include_once "connect.php";

    $FarmerData=json_decode($_POST['FarmerData'],true);
    $ids = join("','",$FarmerData);   

    $stmt ="SELECT * FROM Farmers where Farm_id IN ('$ids')";

    foreach ($conn->query($stmt) as $row) 
    {
        echo $row['nick_name_']."<br>";
    }   
?>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用table2excel jquery插件。

在PHP代码中,只需回显在简单HTML表中执行的数据库数据。

在你的jquery之后,将php的响应表附加到你的页面,并使用table2excel插件将其导出:

success: function (response) 
{
   $('#YourTableDiv').append(response);

   $('#YourTableDiv').table2excel({
      exclude: ".excludeThisClass",
      name: "Worksheet Name",
      filename: "SomeFile" //do not include extension
      fileext: ".xls", // MUST use .xls extension, only this will work
   }); 
},

这是我创建的jsfiddle中的示例代码:https://jsfiddle.net/bj3djhbr/

注意,在这个小提琴中我使用旧版本的table2excel,因此它会在.xlxs中下载文件,遗憾的是无法打开(已知问题),所以只需将其重命名为.xls。 但是如果你使用最新版本,在我给你的github链接上,它应该可以正常工作。