实现效果:如果“指定列”单元格内容一样,那么相同“指定列”内容的行的“合并列”单元格内容用“,”拼接合并
DataTable dt2 = dt.Clone();
dt2.PrimaryKey = new DataColumn[] { dt2.Columns["指定列列名"] };
foreach (DataRow dataRow in dt.Rows)
{
DataRow srow = dt2.Rows.Find(new object[] { dataRow["指定列列名"]});
if (srow == null)
{
dt2.Rows.Add(dataRow.ItemArray);
}
else
{
srow["合并列列名"] = (srow["合并列列名"].ToString() + "," + dataRow["合并列列名"].ToString()).Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
}
}
dt = null;
dt = dt2;
附:
1.”指定列“可为多列 ,用“,”隔开就好 如下:
dt2.PrimaryKey = new DataColumn[] { dt2.Columns["指定列列名1"],dt2.Columns["指定列列名2"],dt2.Columns["指定列列名3"], ...};
2.“合并列”也可多列合并,如下:
srow["合并列列名1"] = (srow["合并列列名1"].ToString() + "," + dataRow["合并列列名1"].ToString()).Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
srow["合并列列名2"] = (srow["合并列列名2"].ToString() + "," + dataRow["合并列列名2"].ToString()).Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");