<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</div>
<br />
<asp:Button ID="Button1" runat="server" Font-Bold="True" OnClick="Button1_Click"
Text="Export To Excel" />
and in code behind:-
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not Page.IsPostBack Then
GridView1.DataSource = BindData()
GridView1.DataBind()
End If
End Sub
Private ReadOnly Property ConnectionString() As String
Get
Return "<SQL Data Source>"
End Get
End Property
Private Function BindData() As DataSet
' make the query
Dim query As String = "SELECT * FROM tblTest"
Dim myConnection As New SqlConnection(ConnectionString)
Dim ad As New SqlDataAdapter(query, myConnection)
Dim ds As New DataSet()
ad.Fill(ds, "TestTable")
Return ds
End Function
Protected Sub Button1_Click(sender As Object, e As EventArgs)
Response.Clear()
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls")
Response.Charset = ""
Response.ContentType = "application/vnd.xls"
Dim stringWrite As New System.IO.StringWriter()
Dim htmlWrite As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(stringWrite)
GridView1.RenderControl(htmlWrite)
Response.Write(stringWrite.ToString())
Response.[End]()
End Sub
Public Overrides Sub VerifyRenderingInServerForm(control As Control)
' Confirms that an HtmlForm control is rendered for the
'specified ASP.NET server control at run time.
End Sub