C# 如何使用ajax调用将Datatable导出到Excel文件

C# 如何使用ajax调用将Datatable导出到Excel文件,c#,jquery,asp.net,ajax,excel,C#,Jquery,Asp.net,Ajax,Excel,我已经试过了,当我通过SOAP API调用时,我可以下载excel文件,但是当我从ajax调用它时,我没有收到任何错误,我也无法下载excel文件 Ajax/JavaScript代码: function getWorkOrders(wono) { $.ajax({ dataType: "json", type: "POST", url: 'AdminWeb.asmx/GetWorkOrdersDetails'

我已经试过了,当我通过SOAP API调用时,我可以下载excel文件,但是当我从ajax调用它时,我没有收到任何错误,我也无法下载excel文件

Ajax/JavaScript代码:

function getWorkOrders(wono) {
        $.ajax({
            dataType: "json",
            type: "POST",
            url: 'AdminWeb.asmx/GetWorkOrdersDetails',
            data: 'id=0&wono=' + wono,
            async: true,
            success: function (data) {
    },
            error: function (jqXHR, textStatus, errorThrown) {
            }
    });
    }
方法:

DataTable dtResult = DataAccess.GetDataTableFromStoredProcedure("sp_Get_WO", Parameters);

    //dt = city.GetAllCity();//your datatable
    string attachment = "attachment; filename=city.xls";
    HttpContext.Current.Response.ClearContent()
    HttpContext.Current.Response.AddHeader("content-disposition", attachment);
    HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
    string tab = "";
    foreach (DataColumn dc in dtResult.Columns)
    {
       HttpContext.Current.Response.Write(tab + dc.ColumnName);
        tab = "\t";
    }
    HttpContext.Current.Response.Write("\n");
    int i;
    foreach (DataRow dr in dtResult.Rows)
    {
        tab = "";
        for (i = 0; i < dtResult.Columns.Count; i++)
        {
            HttpContext.Current.Response.Write(tab + dr[i].ToString());
            tab = "\t";
        }
        HttpContext.Current.Response.Write("\n");
    }
    HttpContext.Current.Response.End();
DataTable dtResult=DataAccess.getdatatablefromstoredprocesse(“sp_Get_WO”,参数);
//dt=city.GetAllCity()//您的数据表
字符串attachment=“attachment;filename=city.xls”;
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.AddHeader(“内容处置”,附件);
HttpContext.Current.Response.ContentType=“应用程序/vnd.ms excel”;
字符串选项卡=”;
foreach(dtResult.Columns中的数据列dc)
{
HttpContext.Current.Response.Write(tab+dc.ColumnName);
tab=“\t”;
}
HttpContext.Current.Response.Write(“\n”);
int i;
foreach(dtResult.Rows中的数据行dr)
{
tab=“”;
对于(i=0;i
请至少提供一个或一些代码。在IIS中,这可能是一种Mime类型的东西,当您通过Ajax下载时,也会说明您尝试了哪些web浏览器,以及Wireshark/Netmon跟踪SOAP@JeremyThompson请检查上面的代码。@JeremyThompson我想导出带有特定搜索数据的excel文件,我不想下载已经存在的文件您的ajax调用不会给您任何错误,因为您没有错误回调defined@Marco我也尝试过错误回调,请至少提供一个或一些代码。在IIS中,这可能是一种Mime类型的东西,当您通过Ajax下载时,也会说明您尝试了哪些web浏览器,以及Wireshark/Netmon跟踪SOAP@JeremyThompson请检查上面的代码。@JeremyThompson我想导出带有特定搜索数据的excel文件,我不想下载已经存在的文件您的ajax调用不会给您任何错误,因为您没有错误回调defined@Marco我也尝试过错误回调