两个Excel(Excel1和Excel2)
Excel1
Col1 Col2 Col3 Col4 Col5
1 11 23 12
2 12 23 13
3 13 17
4 14 23 15
5 15 12Excel2
Col1 Col2 Col3
2 11 12
3 12 12
4 14 12
5 15 12
6 16 12要求:
1、Excel1表中的Col1和Col2两列做为唯一确定一条记录的条件,当Col3有记录时,则取Col4的值,如Col3无记录,则取Col5的值,
也就是说从Excel取出的值有四列,即(Col1,Col2,Col4,Col5)
2、在Excel2中追加两列Col4和Col5
3、拿上表取出的数据与下表进行对比,Col1,Col2与上表的对应,如果Col1和Col2都相等,则拿 Col3与Excel取出的Col4和Col5对比(对比对象是Col4和Col5中不为空的记录),如果两记录相等的话,则不用做任何记录,如两记录不相等,则在Col4或Col5中列出Excel1中取出的数值(这个得根据你是拿Excel1中的哪一列与Excel2进行对比)以上的问题我目前想到的法子是
把Excel1中的数据拿出来放进DataTable中,然后用双层for循环与Excel2对比,执行是没有问题,现在的问题是循环次数太多,执行效率太低(5W次循环大概用200秒).大家一起讨论一下,请各位提供一下思路。
Excel1
Col1 Col2 Col3 Col4 Col5
1 11 23 12
2 12 23 13
3 13 17
4 14 23 15
5 15 12Excel2
Col1 Col2 Col3
2 11 12
3 12 12
4 14 12
5 15 12
6 16 12要求:
1、Excel1表中的Col1和Col2两列做为唯一确定一条记录的条件,当Col3有记录时,则取Col4的值,如Col3无记录,则取Col5的值,
也就是说从Excel取出的值有四列,即(Col1,Col2,Col4,Col5)
2、在Excel2中追加两列Col4和Col5
3、拿上表取出的数据与下表进行对比,Col1,Col2与上表的对应,如果Col1和Col2都相等,则拿 Col3与Excel取出的Col4和Col5对比(对比对象是Col4和Col5中不为空的记录),如果两记录相等的话,则不用做任何记录,如两记录不相等,则在Col4或Col5中列出Excel1中取出的数值(这个得根据你是拿Excel1中的哪一列与Excel2进行对比)以上的问题我目前想到的法子是
把Excel1中的数据拿出来放进DataTable中,然后用双层for循环与Excel2对比,执行是没有问题,现在的问题是循环次数太多,执行效率太低(5W次循环大概用200秒).大家一起讨论一下,请各位提供一下思路。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货