如何在C#中使用Interop Excel动态更改数据表列名称

时间:2019-06-25 13:29:17

标签: c# sql excel

https://i.stack.imgur.com/7RBox.jpg

上图显示了我想要的内容,我希望删除所有列名称的前缀部分,例如,WK1-600,WK1-700,WK1-800 .... WK2-600,WK2-700,WK2-800 ... .WK3-600,WK3-700,WK4-800 .... WK4-600,WK4-700,WK4-800等,然后交替移除600、700、800。

我正在尝试使用下面的代码,但是我不知道如何在互操作excel中更正它。我在编码方面非常满意,请帮助我。...在此先谢谢

foreach (DataColumn column in ds.Tables[0].Columns)
            {

                string colname = column.ColumnName;

                if (colname == "Retailer" || colname == "Brand") ;

                else
                {

                    ds.Tables[0].Columns[colname].ColumnName = "WK" + colname.split('-')[0];

                }

            }

1 个答案:

答案 0 :(得分:0)

因此,您正在尝试从列名称中删除“ WK”。这是对的吗? 如果您的意图是这样,下面的示例会有所帮助

void Main()
{
//init. table 
System.Data.DataTable tbl = new DataTable();
tbl.Columns.AddRange(new DataColumn[] {new DataColumn("Retailer"),
new DataColumn("Brand"),
new DataColumn("WK1-600"),
new DataColumn("WK2-700"),new DataColumn("WK3-800")});

//go over columns and rename
foreach (DataColumn dc in tbl.Columns)
{
    if(dc.ColumnName.Contains("WK")){
        dc.ColumnName = dc.ColumnName.Split('-')[1];
    }
}

//verifiyng the result
  foreach (DataColumn dc in tbl.Columns)
  {

        Console.WriteLine(dc.ColumnName);
  }
}