将Gridview导出到Excel时阻止下载

时间:2014-05-19 08:42:52

标签: asp.net



我试图将Gridview中的数据导出到Excel并将该文件存储在服务器上的文件夹中 我做了这个部分。我唯一想做的是,
我想阻止下载Excel文件 请在下面找到我的代码。

    Response.ClearContent();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "order.xls"));
    Response.ContentType = "application/ms-excel";
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    gridX.AllowPaging = false;
    bindX();
    gridX.HeaderRow.Style.Add("background-color", "#FFFFFF");
    for (int i = 0; i < gridX.HeaderRow.Cells.Count; i++)
    {
        gridX.HeaderRow.Cells[i].Style.Add("background-color", "#df5015");
    }
    gridX.RenderControl(htw);
    //Response.Write(sw.ToString());
    string renderedGridView = sw.ToString();
    string path = Server.MapPath("~/Order/od/x");
    System.IO.File.WriteAllText(path + "/order" + lblF.Text + ".xls", renderedGridView);
    sw.Close();
    htw.Close();


提前致谢。

2 个答案:

答案 0 :(得分:0)

我得到了答案。

代码

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gridX.AllowPaging = false;
bindX();
gridX.HeaderRow.Style.Add("background-color", "#FFFFFF");
for (int i = 0; i < gridX.HeaderRow.Cells.Count; i++)
{
   gridX.HeaderRow.Cells[i].Style.Add("background-color", "#df5015");
}
gridX.RenderControl(htw);
//Response.Write(sw.ToString());
string renderedGridView = sw.ToString();
string path = Server.MapPath("~/Order/od/x");
System.IO.File.WriteAllText(path + "/order" + lblF.Text + ".xls", renderedGridView);
sw.Close();
htw.Close();

答案 1 :(得分:0)

根据需要编辑使用此代码:

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    e.Cancel = true;
    WebClient client = new WebClient();

    client.DownloadDataCompleted += new DownloadDataCompletedEventHandler(client_DownloadDataCompleted);

    client.DownloadDataAsync(e.Url);
}

void client_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
    string filepath = textBox1.Text;
    File.WriteAllBytes(filepath, e.Result);
    MessageBox.Show("File downloaded");
}

希望这会对你有所帮助。