将数据从radGrid导出到excel时出现日期格式问题," 2014年12月"在网格中转换为" 2014年12月"在导出的excel中。我读了一些链接,发现这个自定义格式可以在radGrid_ExportCellFormatting事件处理程序中完成。喜欢:
protected void radGrid_ExportCellFormatting(object source, ExportCellFormattingEventArgs e)
{
if ((e.FormattedColumn.UniqueName) == "Content")
{
e.Cell.Style["mso-number-format"] = @"\@";//To export in text format
}
}
由于我正在动态构建网格,因此我在后面的代码中将事件添加到网格中,但事件不会被触发。
radGrid.ExportCellFormatting += new EventHandler<ExportCellFormattingEventArgs>(radGrid_ExportCellFormatting);
注意:此方法在不是动态网格时会触发并正常工作。
如果有人可以告诉我我缺少什么,或者是否有任何其他方法可以将列的格式设置为&#34; text&#34;
将会很有帮助。我正在创建导出网格的导出方法是:
protected void ExportExcel(RadGrid radGrid)
{
DataSet dsResults = GetDataSet(radGrid);
if (dsResults != null && dsResults.Tables[0].Rows.Count > 0)
{
RadGrid radGrid = new RadGrid();
radGrid.ID = "radGridExcel";
List<string> colNames = (from DataColumn x in dsResults.Tables[0].Columns select x.ColumnName).ToList();
radGrid.MasterTableView.Columns.Clear();
radGrid.EnableLinqExpressions = false;
colNames.ForEach(columnName => radGrid.MasterTableView.Columns.Add(new Telerik.Web.UI.GridBoundColumn { DataField = columnName, HeaderText = columnName, AllowSorting = false, AllowFiltering = false }));
radGrid.AutoGenerateColumns = false;
radGrid.DataSource = dsResults.Tables[0];
radGrid.DataBind();
radGrid.ExportCellFormatting += new EventHandler<ExportCellFormattingEventArgs>(radGrid_ExportCellFormatting);
this.Controls.Add(radGrid);
radGrid.ExportSettings.Excel.Format = GridExcelExportFormat.Xlsx;
radGrid.ExportSettings.HideStructureColumns = true;
radGrid.ExportSettings.OpenInNewWindow = true;
radGrid.ExportSettings.ExportOnlyData = true;
radGrid.ExportSettings.FileName = fileName;
radGrid.MasterTableView.GroupsDefaultExpanded = true;
radGrid.MasterTableView.Caption = string.Empty;
radGrid.MasterTableView.ExportToExcel();
}
}