如何处理CSV以进行导出而不在gridview

时间:2015-10-11 03:31:14

标签: c# asp.net gridview export-to-csv

我已经构建了一个gridview来显示来自各个联盟中选择团队的查询的结果。然后,我可以通过点击选择“下载到CSV” 下载到CSV按钮,当所有结果显示在gridview中时出现。这很好用。 它正在网格中显示,但是当有很多团队被检索时,需要一段时间来加载。有时会这样 很久它会开始网页挂起。现在我想绕过gridview的显示,只需点击即可 “下载到CSV”按钮,以便下载结果。 目前,我试图注释掉代码以显示Gridview但是这个 似乎总是打破代码。或者,我试图将gridview设置为Visible =“False”,这不允许显示gridview, 但仍处理结果(如果网格视图中的数据集超出一定大小,则仍然会挂起网页)。理想的情况下 我希望完全绕过griview,但结果可以在CSV文件中查看。

1 个答案:

答案 0 :(得分:-1)

如果您需要直接从DB下载这里有一个例子:(因为您没有发布任何代码我正在举例并解释)

protected void ExportExcel(object sender, EventArgs e)
{
    string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    using (SqlConnection con = new SqlConnection(constr))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT * FROM Customers"))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataTable dt = new DataTable())
                {
                    sda.Fill(dt);
                    using (XLWorkbook wb = new XLWorkbook())
                    {
                        wb.Worksheets.Add(dt, "Customers");

                        Response.Clear();
                        Response.Buffer = true;
                        Response.Charset = "";
                        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                        Response.AddHeader("content-disposition", "attachment;filename=SqlExport.xlsx");
                        using (MemoryStream MyMemoryStream = new MemoryStream())
                        {
                            wb.SaveAs(MyMemoryStream);
                            MyMemoryStream.WriteTo(Response.OutputStream);
                            Response.Flush();
                            Response.End();
                        }
                    }
                }
            }
        }
    }
}