繁体   English   中英

将GridView导出到Excel,给出空​​的Excel表格

[英]Exporting gridview to excel giving empty excel sheet

我在按钮单击事件中将gridview导出到Excel工作表,但是导出的Excel工作表仅显示以下信息

在此处输入图片说明
代替gridview数据。 在下面,如果导出按钮内的代码单击

    private void ExportGridView(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
        Response.Charset = "";
        Response.ContentType = "application/vnd.ms-excel";
        using (StringWriter sw = new StringWriter())
        {
            HtmlTextWriter hw = new HtmlTextWriter(sw);

            //To Export all pages
            GridView1.AllowPaging = false;
            GridView1.DataBind();
            GridView1.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();
        }
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        /* Verifies that the control is rendered */
    }

另外,aspx中用于gridview的代码是

   ......
 <asp:GridView ID="GridView1" runat="server"  Font-Size="10pt" AllowSorting="True" 
                BackColor="White" BorderColor="#CCCCCC"  AutoGenerateSelectButton="true"
                OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDataBound="GridView1_RowDataBound"  OnSorting="GridView1_Sorting">
          <%--      <Columns>
             ....................
     <td> <asp:Button runat="server" ID="btnExport" Text="Export to Excel" onclick="btnExport_Click" /></td>
    </tr>
     </table>
  </asp:Content>

我解决了这个问题。在将allowpaging设置为false之后,我没有绑定gridview。 下面是完整的代码:

 private void ExportGridView(object sender, EventArgs e)
{
    Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
    Response.Charset = "";
    Response.ContentType = "application/vnd.ms-excel";
    using (StringWriter sw = new StringWriter())
    {
        HtmlTextWriter hw = new HtmlTextWriter(sw);

        //To Export all pages
        GridView1.AllowPaging = false;
        //GridView1.DataBind();
        GridView1.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();
    }
}

另外,我设置EnableEventValidation =“ false”的页面中的.aspx文件中还有另一个更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM