导出gridview数据以作为最终用户的可下载链接

时间:2012-12-03 08:39:57

标签: asp.net html excel gridview

我正在使用此代码作为导出从本地计算机中的gridview中获取.....

   void btn_excelClick()
{
 Response.ClearContent();
    Response.Buffer = true;


    Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "c.xls"));
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "";

    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);



    GridView2.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
}

我的问题是:我应该如何修改我的代码,以便在最终用户点击它时在服务器端下载文件,并且应该弹出源文件的下载链接。

PS:我的Comp目前是我的服务器......

2 个答案:

答案 0 :(得分:1)

您需要执行以下操作:

1。)要在网络上从服务器下载一些文件,您需要在IIS上为所有人共享一个文件夹。

2。)只需将响应写入共享文件夹中的文件即可。

3.)现在您需要一个下载文件的操作。为此,只需在网页上放置一个超链接,并将href属性设置为该文件的Web位置。只要有任何用户点击链接,文件就会被下载到那台人机。

P.S。 WebURL表示站点的URL,后跟文件夹位置。例如:www.example.com/Folder1/Folder2/File1.xls

答案 1 :(得分:0)

不是将输出写入Response,而是将其写入文件。

确保写入文件的路径位于可通过IIS访问的目录中。

GridView2.RenderControl(htw);
var path = Server.MapPath("~/PublicFiles/FileName");
File.WriteAllText(path, sw.ToString());

现在您可以在响应中编写指向该文件的链接,并设置此新创建文件的路径。