日期:2014-05-17  浏览次数:21192 次

Datatable合并行,列值累加
数据是从excel中读取出来的

下面是一段数据,后面还有很多列,怎么根据第一列的相同字段合并行(后面的数据如果同属于一个material需要相加)
Material	Material Description	Doc.type	Document	 <W05/13	  W05/13	 W06/13	  W07/13	  W08/13	  W09/13	 W10/13	  W11/13

7542238-01 Fin.Ampl. 350W 1930-1995 43dB Tr.Schd.  fix 5500001017 27
7542238-01 Fin.Ampl. 350W 1930-1995 43dB Tr.Schd. Agr. 5500001017 5 90 30 35
7542601-02 Fin.Ampl. 44.5dBm 2110-2170 43dB Tr.Schd. Agr. 5500001017 5 55 30 115 35 120
7543140-01 Fin.Ampl. 851-894 43dB Tr.Schd. Agr. 5500001017 86 40 87 25
7562492-01M DCM AF 923 Tr.Schd. Agr. 5500001017 10 1 54 30
7562493-01M DCM AF 936 Tr.Schd. Agr. 5500001017 2 19
7562494-01M DCM AF 1823 Tr.Schd. Agr. 5500001017 51 47 57 46
7562495-01M DCM AF 1835 Tr.Schd. Agr. 5500001017 17 10 5 5 10 5
7562496-01M DCM AF 2125 Tr.Schd. Agr. 5500001017 45 46 35
7562497-01M DCM AF 2135 Tr.Schd. Agr. 5500001017 19 21 20
7563162-01 Fin.Ampl. 350W 2110-2170 43.5dB Tr.Schd. Agr. 5500001017
7575568-01 Fin.Ampl. 350W 1805-1880 43dB Tr.Schd.  fix 5500001017 3
7575568-01 Fin.Ampl. 350W 1805-1880 43dB Tr.Schd. Agr. 5500001017 28 27 45
7577532-01M DCM AF 727 Tr.Schd. Agr. 5500001017 12

------解决方案--------------------

楼主可以使用linq来对datatable进行操作
可以参考如下代码:
datatable使用groupby进行分组统计
------解决方案--------------------
相加的字段什么类型??以整形为例子
var query=from p in  dt.AsEnumerable()
          group d by d.Field<string>("Material") into g
          select new 
         { 
           Material=g.Key,
           Sum=g.Sum(x=>x.整形字段)
         };
字符串

var query==from p in  dt.AsEnumerable()