Hi,
i get an empty excel file on ExcelExport.
I already searched forum and found this thread:
radgrid-export-to-excel-empty-spreadsheet.aspx
I tried setting the MasterPage propertie UseAllDataFields="true", but i get an error at filling the radGrid with data. Like "The column name cant be set with <newnew>, because it wants a Int32 type.".
I also got AutoGenerateColumns="false", i guess its pretty much working like the propertie UseAllDataFields and so it dont fit my custom columns.
Q: What can i change when i not autogenerating?
aspx:
code behind:
Or shall i fill another invisible radGrid with AutoGenerateColumns="true" and call thats ExportToExcel()
cheers mario
i get an empty excel file on ExcelExport.
I already searched forum and found this thread:
radgrid-export-to-excel-empty-spreadsheet.aspx
I tried setting the MasterPage propertie UseAllDataFields="true", but i get an error at filling the radGrid with data. Like "The column name cant be set with <newnew>, because it wants a Int32 type.".
I also got AutoGenerateColumns="false", i guess its pretty much working like the propertie UseAllDataFields and so it dont fit my custom columns.
Q: What can i change when i not autogenerating?
aspx:
<telerik:RadGrid ID="radGrid" runat="server" |
AllowPaging="True" |
PageSize="30" |
AllowSorting="True" |
AutoGenerateColumns="False" |
GridLines="Both" |
OnExcelMLExportStylesCreated="RadGrid_ExcelMLExportStylesCreated" |
OnExcelMLExportRowCreated="RadGrid_ExcelMLExportRowCreated" |
OnItemCommand="Radgrid_GridCommand" |
OnNeedDataSource="Radgrid_NeedDatasource"> |
<MasterTableView DataKeyNames="id" |
CommandItemDisplay="Bottom"> |
<CommandItemTemplate> |
<div style="padding: 5px 5px; align: right;"> |
<asp:ImageButton ID="btnExportToExcel" runat="server" |
ImageUrl="~/App_Themes/Default/Images/excelfile_icon.gif" |
OnClick="btnExportToExcel_Click" /> |
<asp:Label ID="lblRelationAdd" runat="server" |
Text="exportToExcel" |
OnLoad="OnLabelLoad"></asp:Label> |
</div> |
</CommandItemTemplate> |
<Columns> |
<telerik:GridBoundColumn DataField="id" Visible="false"></telerik:GridBoundColumn> |
<telerik:GridButtonColumn ButtonType="ImageButton" ImageUrl="../App_Themes/Default/Images/file_icon.gif" CommandArgument="id" CommandName="OpenFile"></telerik:GridButtonColumn> |
<telerik:GridTemplateColumn> |
<ItemTemplate> |
<asp:Image runat="server" ID="imgNew" |
OnLoad="OnImageLoad" /> |
<asp:TextBox ID="txbNewCreatedDate" runat="server" |
Visible ="false" |
Text='<%# DataBinder.Eval(Container.DataItem,"created_date").ToString() %>' /> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridHyperLinkColumn DataTextField="Metainformation.name" HeaderText="Profile" DataNavigateUrlFormatString="DocumentProfile.aspx?id={0}" DataNavigateUrlFields="id" ></telerik:GridHyperLinkColumn> |
<telerik:GridBoundColumn DataField="Category.name" HeaderText="Kategorie"></telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="User.lastname" HeaderText="Ersteller"></telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="created_date" HeaderText="Erstellungsdatum"></telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="User1.lastname" HeaderText="letzter Bearbeiter"></telerik:GridBoundColumn> |
<telerik:GridTemplateColumn HeaderText="inuse"> |
<ItemTemplate> |
<asp:Image runat="server" ID="imgInUse" |
OnLoad="OnImageLoad"/> |
<asp:TextBox ID="txbInEditMode" runat="server" |
Visible ="false" |
Text='<%# DataBinder.Eval(Container.DataItem,"is_ineditmode").ToString() %>' /> |
<asp:TextBox ID="txbIsCheckedout" runat="server" |
Visible ="false" |
Text='<%# DataBinder.Eval(Container.DataItem,"is_checkedout").ToString() %>' /> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn DataField="checkout_date" DataType="System.DateTime" HeaderText="in Verwendung seit"></telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="Folder.name" HeaderText="Ordner"></telerik:GridBoundColumn> |
<telerik:GridTemplateColumn HeaderText="inuse"> |
<ItemTemplate> |
<asp:ImageButton runat="server" ID="btnDelete" |
OnLoad="OnImageButtonLoad" OnClick="btnDelete_OnClick"/> |
<asp:TextBox ID="txbDeleteInEditMode" runat="server" |
Visible ="false" |
Text='<%# DataBinder.Eval(Container.DataItem,"is_ineditmode").ToString() %>' /> |
<asp:TextBox ID="txbDeleteIsCheckedout" runat="server" |
Visible ="false" |
Text='<%# DataBinder.Eval(Container.DataItem,"is_checkedout").ToString() %>' /> |
<asp:TextBox ID="txbDeleteId" runat="server" |
Visible ="false" |
Text='<%# DataBinder.Eval(Container.DataItem,"id").ToString() %>' /> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
</Columns> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
</MasterTableView> |
<ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True"> |
<ClientEvents OnRowContextMenu="RowContextMenu"></ClientEvents> |
<Selecting AllowRowSelect="true" /> |
</ClientSettings> |
</telerik:RadGrid> |
code behind:
protected void btnExportToExcel_Click(object sender, EventArgs e) |
{ |
// configure |
radGrid.ExportSettings.IgnorePaging = true; |
radGrid.ExportSettings.Excel.Format = GridExcelExportFormat.ExcelML; |
radGrid.ExportSettings.ExportOnlyData = true; |
// export |
radGrid.MasterTableView.ExportToExcel(); |
} |
protected void RadGrid_ExcelMLExportRowCreated(object source, Telerik.Web.UI.GridExcelBuilder.GridExportExcelMLRowCreatedArgs e) |
{ |
} |
protected void RadGrid_ExcelMLExportStylesCreated(object source, Telerik.Web.UI.GridExcelBuilder.GridExportExcelMLStyleCreatedArgs e) |
{ |
foreach (Telerik.Web.UI.GridExcelBuilder.StyleElement style in e.Styles) |
{ |
if (style.Id == "headerStyle") |
{ |
style.FontStyle.Bold = true; |
style.FontStyle.Color = System.Drawing.Color.Gainsboro; |
style.InteriorStyle.Color = System.Drawing.Color.Wheat; |
style.InteriorStyle.Pattern = Telerik.Web.UI.GridExcelBuilder.InteriorPatternType.Solid; |
} |
else if (style.Id == "itemStyle") |
{ |
style.InteriorStyle.Color = System.Drawing.Color.WhiteSmoke; |
style.InteriorStyle.Pattern = Telerik.Web.UI.GridExcelBuilder.InteriorPatternType.Solid; |
} |
else if (style.Id == "alternatingItemStyle") |
{ |
style.InteriorStyle.Color = System.Drawing.Color.LightGray; |
style.InteriorStyle.Pattern = Telerik.Web.UI.GridExcelBuilder.InteriorPatternType.Solid; |
} |
} |
Telerik.Web.UI.GridExcelBuilder.StyleElement myStyle = new Telerik.Web.UI.GridExcelBuilder.StyleElement("MyCustomStyle"); |
myStyle.FontStyle.Bold = true; |
myStyle.FontStyle.Italic = true; |
myStyle.InteriorStyle.Color = System.Drawing.Color.Gray; |
myStyle.InteriorStyle.Pattern = Telerik.Web.UI.GridExcelBuilder.InteriorPatternType.Solid; |
e.Styles.Add(myStyle); |
} |
Or shall i fill another invisible radGrid with AutoGenerateColumns="true" and call thats ExportToExcel()
cheers mario