Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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# 将GridView导出到excel到3个工作表中_C#_Asp.net_Gridview_Export_Excel Interop - Fatal编程技术网

C# 将GridView导出到excel到3个工作表中

C# 将GridView导出到excel到3个工作表中,c#,asp.net,gridview,export,excel-interop,C#,Asp.net,Gridview,Export,Excel Interop,在我的网站上,我有一个按钮,可以调用一个方法,然后生成excel报告。代码是有效的。问题是代码在同一选项卡上显示所有GridView(共3个)。我可以添加什么代码,这样当我单击按钮时,它将下载文档,但每个gridview都显示在各自的选项卡上。选项卡名称将为前1、前2和前3。所以为了澄清,现在所有的GridView都显示在前1个选项卡上,我需要再制作两个选项卡(前2个和前3个),并将gridview2放在前2个选项卡上,将gridview3放在前3个选项卡上。只有一个数据集。我可以使用什么代码来

在我的网站上,我有一个按钮,可以调用一个方法,然后生成excel报告。代码是有效的。问题是代码在同一选项卡上显示所有GridView(共3个)。我可以添加什么代码,这样当我单击按钮时,它将下载文档,但每个gridview都显示在各自的选项卡上。选项卡名称将为前1、前2和前3。所以为了澄清,现在所有的GridView都显示在前1个选项卡上,我需要再制作两个选项卡(前2个和前3个),并将gridview2放在前2个选项卡上,将gridview3放在前3个选项卡上。只有一个数据集。我可以使用什么代码来循环它,以便它将每个表显示到不同的工作表中

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    DataSet dataSet = new DataSet();

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ISALog1ConnectionString"].ToString());

    SqlCommand cmd = new SqlCommand("exec ProxyReport", conn);
    cmd.CommandTimeout = 200;

    SqlDataAdapter ad = new SqlDataAdapter(cmd);
    ad.Fill(dataSet);

    GridView1.DataSource = dataSet.Tables[0];
    GridView1.DataBind();
    GridView2.DataSource = dataSet.Tables[1];
    GridView2.DataBind();
    GridView3.DataSource = dataSet.Tables[2];
    GridView3.DataBind();

}
protected void Button1_Click(object sender, EventArgs e)
{
    string attachment = "attachment; filename=Top 1.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = "application/ms-excel";
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    GridView1.RenderControl(htw);
    GridView2.RenderControl(htw);
    GridView3.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{

}


}
看起来像一个复制品。不过,您似乎将研究互操作


祝你好运。

我现在不知道确切的答案,但我想这可能涉及到将每个
GridView.RenderControl
的输出包装在
标记中。除非我遗漏了什么,否则输出不应该是
.xlsx
文件吗?是的,应该是xlsx。但是我想我需要用它来改变很多代码。。并添加一些循环代码。并替换button1\u click方法的内容。。我只是不知道怎么。。