将数据从网格导出到excel时替换char

时间:2014-04-09 08:58:19

标签: c# export-to-excel radgrid

我使用此代码段从radGrid导出数据:

protected void ExpExcel_Click(object sender, EventArgs e)
{
    foreach (GridColumn col in RadGrid1.MasterTableView.Columns)
    {
        if (col.UniqueName.Contains("notes") || (col.UniqueName.Contains("EditCommandColumn")) ||
            (col.UniqueName.Contains("column1")))
        {
            col.Display = false;
        }
        else
        {
            col.Display = true;
        }
    }
    foreach (GridFilteringItem item in RadGrid1.MasterTableView.GetItems(GridItemType.FilteringItem))
        item.Visible = false;
    RadGrid1.ExportSettings.ExportOnlyData = true;
    RadGrid1.MasterTableView.ExportToExcel();        
}

它工作正常。我的问题是我需要替换列中的一个字符,我有点迷失。导出为ex​​cel数据时,如何替换特定列中的特定字符?

2 个答案:

答案 0 :(得分:0)

如果您确切知道要删除哪种字符,则可以使用替换方法:

string a = "Example1";

a.Replace("1",string.Empty);

您的案例中的一个例子是:

col.UniqueName.Replace("[what you want to remove]", "[what you want it to replace with]");

答案 1 :(得分:0)

我重写了你的方法,并为“notes”栏中的所有单元格添加了带下划线('_')的任何空格('')的替换:

protected void ExpExcel_Click(object sender, EventArgs e)
{
    foreach (GridColumn col in rgTest.MasterTableView.Columns)
    {
        col.Display = !(col.UniqueName.Contains("notes") || col.UniqueName.Contains("EditCommandColumn") || col.UniqueName.Contains("column1"));
    }

    List<Telerik.Web.UI.GridItem> items = rgTest.MasterTableView.GetItems(Telerik.Web.UI.GridItemType.FilteringItem).ToList();
    foreach (GridFilteringItem item in items)
    {
        item.Visible = false;

        // Replace any space character with an underscore:
        if (item.OwnerTableView.DataKeyNames[0] == "notes")
        {
            var c = item.Controls[0] as System.Web.UI.WebControls.TextBox;
            if (c != null)
            {
                c.Text.Replace(' ', '_');
            }
        }
    }

    rgTest.ExportSettings.ExportOnlyData = true;
    rgTest.MasterTableView.ExportToExcel();
}