使用asp.net mvc中的ajax jquery在Excel文件中导出数据表

时间:2014-09-23 15:05:44

标签: jquery asp.net-mvc excel

你好我的控制器动作代码:

public ActionResult ExportExcel()
{
    DataTable dt = new DataTable();

    FILL DataTable

    try
    {
    FileExcel(dt);
    return Json(new { successCode = "1" });
    }
    catch (Exception ex)
    {
        return Json(new { successCode = "0" });
    }
}

public void FileExcel(DataTable dt)
{
    GridView gv = new GridView();
    gv.DataSource = dt;
    gv.DataBind();

    HttpContext context = System.Web.HttpContext.Current;
    context.Response.ClearContent();
    context.Response.Buffer = true;
    context.Response.AddHeader("content-disposition", "attachment; filename=Ricerca.xls");
    context.Response.ContentType = "application/ms-excel";
    context.Response.Charset = "";
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    gv.RenderControl(htw);
    context.Response.Output.Write(sw.ToString());
    context.Response.Flush();
    htw.Close();
    sw.Close();
    context.Response.End();
}

我的Ajax Jquery功能

function ExportExcel() {
    $.ajax({
        type: "POST",
        url: '/Home/ExportExcel/',    
        beforeSend: function () {
            AjaxStart('...Export');
        },
        success: function (data, textStatus, jqXHR) {
                 AjaxStop();
                 alert('success')
        },
        error: function (failure) {
            alert('error');               
        }
    });
}

如果我通过一个简单的链接调用ajax函数ExportExcel()

<a href="#" onclick="ExportExcel();">Export Excel Ajax</a>

它不起作用!!!!!!

而如果使用简单的控制器操作

@Html.ActionLink("Export Excel", "ExportExcel", "Home")

出现要保存的excel文件!我想使用第一种方法(ajax)来管理电子竞技延迟

3 个答案:

答案 0 :(得分:1)

ajax不会这样工作。您在成功函数的数据变量中有excel文件的数据,但您无法将其保存为文件。尝试将此行添加到成功函数中并自己查看:

alert(data); 

您可以通过0宽度和高度的iframe实现您想要的效果。

答案 1 :(得分:0)

如果您希望通过JavaScript触发下载,请尝试此问题的答案How to export to excel in Asp.Net MVC?

function ExportExcel() {
    window.open('/Home/ExportExcel/');
}

答案 2 :(得分:0)

我们可以通过cdn获取Tabletools flash swf文件,提供保存pdf文件的功能。我们将使用人口表。请浏览本网站

http://www.infinetsoft.com/Post/How-to-export-jQuery-datatables-to-MS-excel-in-asp-net-MVC/1192#.VzCATYR97IU