Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将中的网格视图导出到excel?_C#_Asp.net_Gridview - Fatal编程技术网

C# 如何将中的网格视图导出到excel?

C# 如何将中的网格视图导出到excel?,c#,asp.net,gridview,C#,Asp.net,Gridview,您好,我正在开发一个应用程序,其中我使用网格显示数据,并添加一个动态数据表作为gridview的标题,iam使用以下代码将网格视图导出到excel中,但我无法将动态添加到网格中的数据表导出到excel中。我使用的代码是: Response.AddHeader("content-disposition", "attachment;filename=Report.xls"); Response.Charset = String.Empty; Response.ContentT

您好,我正在开发一个应用程序,其中我使用网格显示数据,并添加一个动态数据表作为gridview的标题,iam使用以下代码将网格视图导出到excel中,但我无法将动态添加到网格中的数据表导出到excel中。我使用的代码是:

    Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
    Response.Charset = String.Empty;
    Response.ContentType = "application/vnd.xls";
    System.IO.StringWriter sw = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw);
    GridView1.DataBind();
    GridView1.RenderControl(hw);
    Response.Write(sw.ToString());
    Response.End();
你还有别的方法可以遵循吗


提前谢谢

我看不到您在哪里添加动态数据表作为标题??这应该在数据绑定之后、GridView1.RenderControl(hw)之前

在按钮单击事件中尝试此选项

              protected void btnExcel_Click(object sender, ImageClickEventArgs e)
           {
              Response.ClearContent();
              Response.Buffer = true;
              Response.AddHeader("content-disposition", string.Format("attachment; filename=      {0}", "Customers.xls"));
              Response.ContentType = "application/ms-excel";
             StringWriter sw = new StringWriter();
             HtmlTextWriter htw = new HtmlTextWriter(sw);
             gvdetails.AllowPaging = false;
             gvdetails.DataBind();
            //Change the Header Row back to white color
            gvdetails.HeaderRow.Style.Add("background-color", "#FFFFFF");
            //Applying stlye to gridview header cells
            for (int i = 0; i < gvdetails.HeaderRow.Cells.Count; i++)
          {
          gvdetails.HeaderRow.Cells[i].Style.Add("background-color", "#507CD1");
          }
           int j = 1;
           //This loop is used to apply stlye to cells based on particular row
           foreach (GridViewRow gvrow in gvdetails.Rows)
           {
             gvrow.BackColor = Color.White;
             if (j <= gvdetails.Rows.Count)
           {
            if (j % 2 != 0)
      {
        for (int k = 0; k < gvrow.Cells.Count; k++)
          {
        gvrow.Cells[k].Style.Add("background-color", "#EFF3FB");
          }
        }
       }
          j++;
        }
          gvdetails.RenderControl(htw);
            Response.Write(sw.ToString());
           Response.End();
          }
protectedvoid btnExcel\u单击(对象发送者,图像单击事件参数e)
{
Response.ClearContent();
Response.Buffer=true;
AddHeader(“内容处置”,string.Format(“附件;文件名={0}”,“Customers.xls”);
Response.ContentType=“应用程序/ms excel”;
StringWriter sw=新的StringWriter();
HtmlTextWriter htw=新的HtmlTextWriter(sw);
gvdetails.AllowPaging=false;
gvdetails.DataBind();
//将标题行更改回白色
gvdetails.HeaderRow.Style.Add(“背景色”和“#FFFFFF”);
//将stlye应用于gridview标题单元格
对于(int i=0;i如果(j这将在格式化输出文件中导出gridview

Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment; filename=gridSample.xls");
        Response.Charset = "";
        Response.ContentType = "application/vnd.ms-excel";

        using (StringWriter sw = new StringWriter())
        {
            HtmlTextWriter hw = new HtmlTextWriter(sw);

            //to export all pages
            gridSample.AllowPaging = false;
            gridSample.DataSource = progress.getSample();
            gridSample.DataBind();
            //bind again

            gridSample.HeaderRow.BackColor = Color.White;

            foreach (TableCell cell in gridSample.HeaderRow.Cells)
            {
                cell.BackColor = gridSample.HeaderStyle.BackColor;
            }
            foreach (GridViewRow row in gridSample.Rows)
            {
                row.BackColor = Color.White;
                foreach (TableCell cell in row.Cells)
                {
                    if (row.RowIndex % 2 == 0)
                    {
                        cell.BackColor = gridSample.AlternatingRowStyle.BackColor;
                    }
                    else
                    {
                        cell.BackColor = gridSample.RowStyle.BackColor;
                    }
                    cell.CssClass = "textmode";
                }
            }

            gridSample.RenderControl(hw);

            //style to format numbers to string
            string style = @"<style> .textmode { } </style>";
            Response.Write(style);
            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();
        }
Response.Clear();
Response.Buffer=true;
AddHeader(“内容处置”、“附件;文件名=gridSample.xls”);
响应。Charset=“”;
Response.ContentType=“application/vnd.ms excel”;
使用(StringWriter sw=new StringWriter())
{
HtmlTextWriter hw=新的HtmlTextWriter(sw);
//导出所有页面的步骤
gridSample.AllowPaging=false;
gridSample.DataSource=progress.getSample();
gridSample.DataBind();
//重新绑定
gridSample.HeaderRow.BackColor=颜色.白色;
foreach(gridSample.HeaderRow.Cells中的TableCell单元格)
{
cell.BackColor=gridSample.HeaderStyle.BackColor;
}
foreach(gridSample.Rows中的GridViewRow行)
{
row.BackColor=Color.White;
foreach(行中的表格单元格。单元格)
{
如果(row.RowIndex%2==0)
{
cell.BackColor=gridSample.AlternatingRowStyle.BackColor;
}
其他的
{
cell.BackColor=gridSample.RowStyle.BackColor;
}
cell.CssClass=“textmode”;
}
}
gridSample.RenderControl(硬件);
//将数字格式化为字符串的样式
字符串样式=@“.textmode{}”;
回应。写作(风格);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}