Introduction
In this article
I'll show you how we can export a panel containing controls like Labels,
Textboxes etc. In many cases we need to export our GridView to Excel and
some other controls on the page to Excel.
Background
For exporting
our page content in this article I'm using a third party DLL which contains
same panel like ASP.Net panel. Doing a Google search I found this DLL and I'm
willing to share it with you. This export panel can be exported in various formats
like Excel, Word, HTML, PowerPoint and WordPerfect. By simply using just two or three lines
of code we can export our panel in th above mentioned format.
In so many cases we need to prepare reports; normally these reports we are
displayed in a GridView which you can export to Excel format with lots of stuff
but in this case you are able to export only GridView and only in Excel format.
But using this export panel control you can export anything in the panel to
various formats and with little stuff. So let's see this export panel control.
Step 1:
Start a new web
site and add a reference to the ExportPanel.dll file given with the upload in the bin
directory.
Step 2:
Register
tagprefix to ExportPanel.dll on Default.aspx page like below.
<%@
Register TagPrefix="cc1"
Namespace="ControlFreak"
Assembly="ExportPanel"
%>
Step 3:
After
registering tagprefix you can use this Exportpanel control like below.
<cc1:exportpanel
id="ExportPanel1"
runat="server"
Height="207px"
Width="688px"
BorderWidth="1px"
BorderStyle="Dotted"
ScrollBars="Both"></cc1:exportpanel>
Step 4:
In this panel you can keep any control with
data which you want to export in Excel Word, HTML etc. I'm keeping GridView
and label.
<cc1:exportpanel
id="ExportPanel1"
runat="server"
Height="207px"
Width="688px"
BorderWidth="1px"
BorderStyle="Dotted"
ScrollBars="Both">
<table
class="style1">
<tr>
<td>
<asp:GridView
ID="GridView1"
runat="server"
BackColor="LightGoldenrodYellow"
BorderColor="Tan"
BorderWidth="1px"
CellPadding="2"
ForeColor="Black"
GridLines="None">
<AlternatingRowStyle
BackColor="PaleGoldenrod"
/>
<FooterStyle
BackColor="Tan"
/>
<HeaderStyle
BackColor="Tan"
Font-Bold="True"
/>
<PagerStyle
BackColor="PaleGoldenrod"
ForeColor="DarkSlateBlue"
HorizontalAlign="Center"
/>
<SelectedRowStyle
BackColor="DarkSlateBlue"
ForeColor="GhostWhite"
/>
<SortedAscendingCellStyle
BackColor="#FAFAE7"
/>
<SortedAscendingHeaderStyle
BackColor="#DAC09E"
/>
<SortedDescendingCellStyle
BackColor="#E1DB9C"
/>
<SortedDescendingHeaderStyle
BackColor="#C2A47B"
/>
</asp:GridView>
</td>
<td
valign="top">
Some Thing Here like controls or any text also.</td>
</tr>
<tr>
<td>
<asp:Label
ID="Label1"
runat="server"
Font-Bold="True"
ForeColor="#0000CC"
Text="I'm Lable"></asp:Label>
</td>
<td
bgcolor="#99FFCC">
<strong>This
is Table Cell</strong></td>
</tr>
</table>
</cc1:exportpanel>
Put one RadioButtonList to specify the format in which te user wants to
export the panel.
<asp:RadioButtonList
ID="RadioButtonList1"
runat="server">
<asp:ListItem
Value="HTML"
Selected="True">HTML</asp:ListItem>
<asp:ListItem
Value="Excel">Excel</asp:ListItem>
<asp:ListItem
Value="Word">Word</asp:ListItem>
<asp:ListItem
Value="Powerpoint">Powerpoint</asp:ListItem>
<asp:ListItem
Value="WordPerfect">WordPerfect</asp:ListItem>
</asp:RadioButtonList>
Step 5:
Populate the GridView; here I'm creating a simple
datatable with some rows and binding it to the GridView.
DataTable
dt = new DataTable("RunnerUp");
DataColumn dc1=new
DataColumn("Name",typeof(string));
DataColumn dc2 =
new DataColumn("Points",
typeof(int));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
DataRow dr1 = dt.NewRow();
dr1[0] = "Vulpes";
dr1[1] = 235;
DataRow dr2 = dt.NewRow();
dr2[0] = "SP Nayak";
dr2[1] = 135;
DataRow dr3 = dt.NewRow();
dr3[0] = "Krishna";
dr3[1] = 40;
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
GridView1.DataSource = dt;
GridView1.DataBind();
Step 6:
In
the Export button click event, write the following code to export the panel in the user
selected format.
switch
(RadioButtonList1.SelectedValue.ToString())
{
case
"HTML":
ExportPanel1.ExportType =
ExportPanel.AppType.HTML;
break;
case
"Excel":
ExportPanel1.ExportType =
ExportPanel.AppType.Excel;
break;
case
"Word":
ExportPanel1.ExportType =
ExportPanel.AppType.Word;
break;
case"Powerpoint":
ExportPanel1.ExportType =
ExportPanel.AppType.PowerPoint;
break;
case"WordPerfect":
ExportPanel1.ExportType =
ExportPanel.AppType.WordPerfect;
break;
}
Step 7:
Run
the application and export the panel in Excel, Word, WordPerfect, PowerPoint and
HTML.
Conclusion:
In
this way we can export anything in panel in various formats using a little bit
code.