将数据从excel导入到mvc

时间:2016-11-10 08:44:20

标签: c# asp.net-mvc excel asp.net-mvc-4

我正在尝试将数据从excel导入到mvc

public void DownloadAsExcelOrderReports()
{
    try
    {
        var list = _reportWork.GetList();
        GridView gv = new GridView();
        gv.DataSource = list;
        gv.DataBind();
        Response.ClearContent();
        Response.Buffer = true;
        Response.ContentEncoding = System.Text.Encoding.UTF32;
        Response.AddHeader("content-disposition", "attachment; filename=Marklist.xls");
        Response.ContentType = "application/ms-excel";
        Response.Charset = "";
        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter htw = new HtmlTextWriter(sw))
            {
                gv.RenderControl(htw);
                Response.Output.Write(sw.ToString());
                Response.Flush();
                Response.End();
            }
        }
    }
    catch (Exception ex)
    {

    }
}

这是我在网上找到的代码。我得到这样的输出。 enter image description here  通常它必须自动填写表格本身到excel.I看不到,我错过了。

1 个答案:

答案 0 :(得分:1)

GridView是一个WebControl。你把数据放入它(DataBind)并发出html(RenderControl),它应该被发送到浏览器,浏览器会将它显示为一个表(tr和td标签)。

在您的情况下,您试图在Excel文档中显示该HTML代码并且没有任何意义。

我发现最好的是使用EPPlus,您可以从NuGet Package Manager获得。您必须将数据绑定到您希望excel doc看起来的样子。它有点繁琐,但别无选择。