合并数据
假定有一个下图所示的Excel格式的订单表:

需要将其数据合并到Foxtable的订单表中,可以参考以下代码:
Dim 
Book 
As New
XLS.Book("c:\test\订单.xls")
Dim 
Sheet As
XLS.Sheet 
= Book.Sheets(0)
Tables("订单").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() 
As 
String =
{"编号","产品","客户","雇员","单价","折扣","数量","日期"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For
n As
Integer = 1
To Sheet.Rows.Count 
-1 
   
Dim r 
As 
Row = 
Tables("订单").AddNew()
    For 
m 
As 
Integer 
= 0 
To nms.Length 
- 1
         
r(nms(m)) 
= Sheet(n,m).Value
    Next
Next
Tables("订单").ResumeRedraw()
如果订单表中已经存在相同编号的订单,那么就跳过此订单,可以将代码改为:
Dim 
Book 
As New
XLS.Book("c:\test\订单.xls")
Dim 
Sheet As
XLS.Sheet 
= Book.Sheets(0)
Tables("订单").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() 
As 
String =
{"编号","产品","客户","雇员","单价","折扣","数量","日期"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 
For
n
As
Integer 
= 
1
To
Sheet.Rows.Count 
-1
    
Dim
bh
As
String 
= 
sheet(n,0).Text
    
If
DataTables("订单").Find("编号 
= '" 
&
bh
& 
"'") 
Is
Nothing
Then
'如果不存在同编号的订单
        Dim 
r 
As 
Row 
= Tables("订单").AddNew()
        For 
m 
As 
Integer 
= 
0 
To 
nms.Length 
- 
1
            
r(nms(m)) 
= 
Sheet(n,m).Value
        
Next
    End If
Next
Tables("订单").ResumeRedraw()
再进一步,如果存在相同编号的订单,则覆盖原来的订单,否则新增一个订单,代码为:
Dim 
Book 
As New
XLS.Book("c:\test\订单.xls")
Dim Sheet 
As XLS.Sheet 
= Book.Sheets(0)
Tables("订单").StopRedraw()
Dim nms() 
As String 
= {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
For 
n
As
Integer 
= 1
To
Sheet.Rows.Count 
-1
    Dim
bh
As
String 
= sheet(n,0).Text
    Dim
dr
As
DataRow 
= DataTables("订单").Find("编号 
= '" &
bh
& 
"'") 
    If dr 
Is Nothing Then 
'如果不存在同编号的订单
        dr 
=  DataTables("订单").AddNew()
    End If
    For m 
As 
Integer =
0 
To nms.Length 
- 1
        dr(nms(m)) 
= Sheet(n,m).Value
    Next
Next
Tables("订单").ResumeRedraw()
提示:其实我们用Merger合并数据会更加简单,上述代码的目的是给大家提供另一种思路,因为在一些特殊情况下,Merger可能无法正常合并数据。