Hi all,
In my application, I have rad grid. I want export it into excel. For this I am using oledb connection. The grid is exporting into the excel. Now the problem is the grid contains the footer row. The footer row is not exporting in excel. Anybody please help on this how to export the radgrid data into the excel with header and footer row. Thanks in advance.
Regards,
Akki
In my application, I have rad grid. I want export it into excel. For this I am using oledb connection. The grid is exporting into the excel. Now the problem is the grid contains the footer row. The footer row is not exporting in excel. Anybody please help on this how to export the radgrid data into the excel with header and footer row. Thanks in advance.
Regards,
Akki
4 Answers, 1 is accepted
0

Princy
Top achievements
Rank 2
answered on 28 May 2012, 10:00 AM
Hi Akki,
Please take a look into the following code i tried to export footer and header.
ASPX:
C#:
Thanks,
Princy.
Please take a look into the following code i tried to export footer and header.
ASPX:
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"Export"
OnClick
=
"Button1_Click"
/>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
AllowSorting
=
"true"
OnExcelMLExportRowCreated
=
"RadGrid1_ExcelMLExportRowCreated"
EnableLinqExpressions
=
"false"
>
<
ExportSettings
ExportOnlyData
=
"true"
Excel-Format
=
"Html"
/>
<
MasterTableView
AutoGenerateColumns
=
"false"
ShowFooter
=
"true"
CommandItemDisplay
=
"Top"
>
<
CommandItemSettings
ShowExportToExcelButton
=
"true"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Manufacturer"
HeaderText
=
"Manufacturer"
/>
<
telerik:GridBoundColumn
Aggregate
=
"Count"
DataField
=
"ProductName"
FooterAggregateFormatString
=
"Total products: {0}"
HeaderText
=
"Product"
/>
<
telerik:GridBoundColumn
DataField
=
"InStock"
DataType
=
"System.Int32"
HeaderText
=
"Available"
AllowSorting
=
"false"
/>
<
telerik:GridBoundColumn
Aggregate
=
"Sum"
DataField
=
"Price"
FooterAggregateFormatString
=
"Total: {0}"
HeaderText
=
"Price"
DataType
=
"System.Double"
/>
<
telerik:GridCalculatedColumn
DataFields
=
"Price, InStock"
Aggregate
=
"Sum"
Expression
=
"{0}*{1}"
UniqueName
=
"myCalculatedColumn"
HeaderText
=
"Total"
DataType
=
"System.Double"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
C#:
protected
void
RadGrid1_NeedDataSource(
object
source, GridNeedDataSourceEventArgs e)
{
DataTable table =
new
DataTable();
table.Columns.Add(
"ProductName"
);
table.Columns.Add(
"Price"
,
typeof
(
double
));
table.Columns.Add(
"Manufacturer"
);
table.Columns.Add(
"InStock"
,
typeof
(
int
));
table.Rows.Add(
"Futo maki"
, 12.44,
"Osaka Nihonbashi"
, 4);
table.Rows.Add(
"Musaka"
, 10.61,
"Sofiiski gozbi"
, 1);
table.Rows.Add(
"Cheesezer"
, 9.50,
"Burger mafia"
, 9);
RadGrid1.DataSource = table;
}
int
currentItem = 0;
protected
void
RadGrid1_ExcelMLExportRowCreated(
object
source, GridExportExcelMLRowCreatedArgs e)
{
if
(e.Worksheet.Table.Rows.Count == RadGrid1.Items.Count + 1)
{
GridFooterItem footerItem = RadGrid1.MasterTableView.GetItems(GridItemType.Footer)[0]
as
GridFooterItem;
RowElement row =
new
RowElement();
//create new row for the footer aggregates
for
(
int
i = 2; i < footerItem.Cells.Count; i++)
{
TableCell fcell = footerItem.Cells[i];
CellElement cell =
new
CellElement();
cell.Data.DataItem = fcell.Text ==
" "
?
""
: fcell.Text;
row.Cells.Add(cell);
}
e.Worksheet.Table.Rows.Add(row);
//correct the autofilter
e.Worksheet.AutoFilter.Range = String.Format(
"R1C1:R1C{0}"
, e.Worksheet.Table.Columns.Count + 1);
}
//create new cell for this row (part of the calculated column)
CellElement calculatedCell =
new
CellElement();
if
(e.RowType == GridExportExcelMLRowType.DataRow)
//data cell
{
calculatedCell.Data.DataItem =
double
.Parse(RadGrid1.MasterTableView.Items[currentItem][
"myCalculatedColumn"
].Text);
currentItem++;
}
if
(e.RowType == GridExportExcelMLRowType.HeaderRow)
calculatedCell.Data.DataItem = RadGrid1.MasterTableView.GetColumn(
"myCalculatedColumn"
).HeaderText;
//header cell
e.Row.Cells.Add(calculatedCell);
}
protected
void
Button1_Click(
object
sender, EventArgs e)
{
RadGrid1.MasterTableView.ExportToExcel();
}
Thanks,
Princy.
0

Jayesh Goyani
Top achievements
Rank 2
answered on 28 May 2012, 10:51 AM
Hello Akki,
Thanks,
Jayesh Goyani
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"false"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
ShowFooter
=
"true"
ShowHeader
=
"true"
>
<
ExportSettings
ExportOnlyData
=
"true"
>
</
ExportSettings
>
<
MasterTableView
CommandItemDisplay
=
"Top"
>
<
CommandItemSettings
ShowExportToExcelButton
=
"true"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ID"
UniqueName
=
"ID"
Aggregate
=
"Count"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
DateTime dt = DateTime.Now;
dynamic data =
new
[] {
new
{ ID = 1, Name =
"Name_1"
, customdate=dt,NO = 11.00,CustomerId=
"ALFKI"
,Stock=20,IsSysAdmin =
true
},
new
{ ID = 2, Name =
"Name2"
, customdate=dt,NO = 11.00,CustomerId=
"ALFKI2"
,Stock=30,IsSysAdmin =
false
},
new
{ ID = 3, Name =
"Name3"
, customdate=dt,NO = 11.00,CustomerId=
"ALFKI1"
,Stock=20,IsSysAdmin =
true
},
new
{ ID = 4, Name =
"Name4"
, customdate=dt,NO = 11.44,CustomerId=
"ALFKI"
,Stock=40,IsSysAdmin =
true
},
new
{ ID = 55555, Name =
"Name5"
, customdate=dt,NO = 10.4,CustomerId=
"ALFKI"
,Stock=20,IsSysAdmin =
true
}
};
RadGrid1.DataSource = data;
}
Thanks,
Jayesh Goyani
0

Shubham
Top achievements
Rank 1
answered on 02 Jan 2014, 03:57 PM
HI Princy
when I am setting
then our event
Not get fired . It get fired only when I sat
but in this case rows of child grid moves to next cell in excel .
Thanks
when I am setting
<
ExportSettings
ExportOnlyData
=
"true"
Excel-Format
=
"Html"
/>
then our event
OnExcelMLExportRowCreated
=
"RadGrid1_ExcelMLExportRowCreated"
Not get fired . It get fired only when I sat
Excel-Format
=
"ExcelML"
but in this case rows of child grid moves to next cell in excel .
Thanks
0

Princy
Top achievements
Rank 2
answered on 03 Jan 2014, 10:38 AM
Hi Shubham,
With Excel-Format="Html" you can use the OnHTMLExporting or OnGridExporting event of the RadGrid. Please have a look into this documentation on HTML-Based Export and Excel Format (HTML-Based).
Thanks,
Princy
With Excel-Format="Html" you can use the OnHTMLExporting or OnGridExporting event of the RadGrid. Please have a look into this documentation on HTML-Based Export and Excel Format (HTML-Based).
Thanks,
Princy