C# 从ASP.NET页面创建文件导出和保存

C# 从ASP.NET页面创建文件导出和保存,c#,asp.net,C#,Asp.net,我有一个ASP.NET网页,其中包含用户数据的网格视图。我需要在gridview中获取数据,生成一个excel文件,并允许用户将该excel文件保存到本地计算机 在代码中实现这一点的最佳方法是什么?是否可以显示文件保存对话框,然后在用户选择目录和文件名后从网格数据创建文件?我在软件开发中完成了这一点,但在web开发中从未处理过 谢谢大多数人倾向于这样实施它: protected void btnExportToExcel_Click(object sender, EventArgs e)

我有一个ASP.NET网页,其中包含用户数据的网格视图。我需要在gridview中获取数据,生成一个excel文件,并允许用户将该excel文件保存到本地计算机

在代码中实现这一点的最佳方法是什么?是否可以显示文件保存对话框,然后在用户选择目录和文件名后从网格数据创建文件?我在软件开发中完成了这一点,但在web开发中从未处理过


谢谢

大多数人倾向于这样实施它:

protected void btnExportToExcel_Click(object sender, EventArgs e)    
{
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment; filename=FileName.xls");

        Response.Charset = "";         
        Response.ContentType = "application/vnd.xls";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();        
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
        GridView1.RenderControl(htmlWrite);        
        Response.Write(stringWrite.ToString());
        Response.End();
}


另一种选择(我更喜欢)是使用

大多数人倾向于这样实现它:

protected void btnExportToExcel_Click(object sender, EventArgs e)    
{
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment; filename=FileName.xls");

        Response.Charset = "";         
        Response.ContentType = "application/vnd.xls";
        System.IO.StringWriter stringWrite = new System.IO.StringWriter();        
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
        GridView1.RenderControl(htmlWrite);        
        Response.Write(stringWrite.ToString());
        Response.End();
}


另一种选择(我更喜欢的选择)是使用

Yes。您可以实现这种使用文件流来获取字节中的文件数据,然后将这些字节分配给响应。选中此链接,它将指导您如何打开文件拨号并允许用户在用户端保存文件。是的,您可以使用文件流实现此功能,以字节形式获取文件数据,然后将这些字节分配给响应。检查此链接,它将指导您如何打开文件拨号并允许用户在用户端保存文件。这正是我所说的。我也有那个代码,但找不到:)谢谢。工作得很有魅力!我在现有代码中只差了一点。网络开发(bleh.)+如果您需要对生成的excel进行更多控制,则EPPlus为1。它很容易学习和使用,就像软件应该是的样子。和我说的完全一样。我也有那个代码,但找不到:)谢谢。工作得很有魅力!我在现有代码中只差了一点。网络开发(bleh.)+如果您需要对生成的excel进行更多控制,则EPPlus为1。它很容易学习和使用,就像软件应该的那样。