在动态rad网格中导出到excel(xlsx)

时间:2016-04-12 11:19:57

标签: c# excel telerik-grid

将数据从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();
        }
    }

0 个答案:

没有答案