C# 如何将中的网格视图导出到excel?
您好,我正在开发一个应用程序,其中我使用网格显示数据,并添加一个动态数据表作为gridview的标题,iam使用以下代码将网格视图导出到excel中,但我无法将动态添加到网格中的数据表导出到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
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();
}