excel 从DataTable中删除列名中的空格

5fjcxozz  于 2023-01-21  发布在  其他
关注(0)|答案(4)|浏览(161)

我有一个DataTable,我从excel表中填充。excel中的列名在两个单词之间包含空格,即。
1.产品类型
1.序列号
我在努力实现
1.产品类型或产品类型
1.序列号或序列号
DataTable列是从excel动态生成的。我尝试删除单词之间的空格,但似乎无法使其工作。我当前删除空格的代码如下所示

foreach (DataRow dr in cloned.Rows)
{
    foreach (DataColumn col in cloned.Columns)
    {
        dr[col] = dr[col].ToString().Replace(" ", "");
    }
}

谁能告诉我哪里错了。

z4bn682m

z4bn682m1#

如果要修改列,则不需要循环行:

foreach(DataColumn c in cloned.Columns)
    c.ColumnName = String.Join("_", c.ColumnName.Split());

如果要删除空格,请使用String.Join("", c.ColumnName.Split())

mutmk8jj

mutmk8jj2#

首先,您不需要循环DataTable的行

foreach (DataColumn col in cloned.Columns)
{
    col.ColumnName = col.ColumnName.Replace(" ","");
}
zd287kbt

zd287kbt3#

您也可以在foreach循环中使用以下方法。

public static string TrimAllWithSplitAndJoin(string str)
{
    return string.Concat(str.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
}

static Regex whitespace = new Regex(@"\s+", RegexOptions.Compiled);

public static string TrimAllWithRegex(string str)
{
    return whitespace.Replace(str, "");
}

foreach (DataColumn col in cloned.Columns)
{
    col.ColumnName = TrimAllWithSplitAndJoin(col.ColumnName);
}
dxxyhpgq

dxxyhpgq4#

我认为最好把检查过程的数据列,当列类型是字符串然后删除空间

if (col.DataType == typeof(System.String))
  {
  dr[col] = dr[col].ToString().Replace(" ", "");
  }

相关问题