我正在尝试将数据从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)
{
}
}
答案 0 :(得分:1)
GridView是一个WebControl。你把数据放入它(DataBind)并发出html(RenderControl),它应该被发送到浏览器,浏览器会将它显示为一个表(tr和td标签)。
在您的情况下,您试图在Excel文档中显示该HTML代码并且没有任何意义。
我发现最好的是使用EPPlus,您可以从NuGet Package Manager获得。您必须将数据绑定到您希望excel doc看起来的样子。它有点繁琐,但别无选择。