我有这样的数据表(我从excel表中获取数据)。 我正在将Excel工作表转换为数据表。现在我需要格式化数据。 这就是我的数据表的样子。
Lead EMPnames
vinay kumar
vinay manju.u
vinay kiran
anitha manju.k
anitha rahul
sandeep arjun
sandeep manu
rohit sandeep
rohit vinay
rohit anitha
现在我需要像这样格式化数据表:
Lead EMPnames
vinay kumar
manju.u
kiran
sandeep arjun
manu
anitha manju.k
rahul
rohit sandeep
vinay
anitha
任何想法如何做到这一点? 任何帮助将不胜感激
谢谢。
答案 0 :(得分:1)
为什么不将linq与“group by”子句一起使用?
例如,请参阅以下链接中的示例3:
http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#simple1
答案 1 :(得分:0)
我们在数组中使用了主要名称。
string[] srLead = { "vinay", "sandeep", "anitha", "rohit" };
然后获取源数据表并根据潜在客户名称对其进行过滤并添加到新的DataTable:
#region Grouping by Teamlead
DataTable dtGroup = new DataTable();
dtGroup = dtResult.Clone();
foreach (DataColumn dc in dtResult.Columns)
{
dc.DataType = typeof(string);
}
dtGroup.AcceptChanges();
foreach (string s in srLead)
{
string name = s;
DataTable dtsource = new DataTable();
dtsource = TeamLeadFilter(dtResult, name);
CombineDatatable(ref dtGroup, dtsource);
dtGroup.AcceptChanges();
}
#endregion
#region TeamLeadFilter
public DataTable TeamLeadFilter(DataTable dtResult, string str)
{
DataView dvData = new DataView(dtResult);
dvData.RowFilter = "TeamLead ='" + str + "'";
return dvData.ToTable();
}
#endregion
#region CombineDatatable
public DataTable CombineDatatable(ref DataTable destini, DataTable source)
{
foreach (DataRow dr in source.Rows)
{
destini.ImportRow(dr);
}
return destini;
}
#endregion
通过这种方式,我解决了这个问题。