以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导入数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172190)

--  作者:fox-
--  发布时间:2021/9/28 17:22:00
--  导入数据
老师您好我想咨询一下,导入excel表只导入跟内部表一样提单号的数据,只导入列a,列b,应该怎么写,因为内部表这几列都是空的,就想把对应的提单号的数据添加,内部表跟excel都有提单号
--  作者:有点蓝
--  发布时间:2021/9/28 17:33:00
--  
参考:http://www.foxtable.com/webhelp/topics/2334.htm
--  作者:fox-
--  发布时间:2021/9/28 17:54:00
--  
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() 老师我那个excel只有三行,想要跟foxtable合并,单号一样的情况下,才很并那条数据,其实就是我当时侯没有加那几列的,然后现在有张表可以以提单号来把他们导入,这就不是很懂
--  作者:有点蓝
--  发布时间:2021/9/28 20:14:00
--  
看2楼第三段代码,如果完全看不懂代码的,建议先学学基础:http://www.foxtable.com/webhelp/topics/0207.htm
假设execl第一列是提单号
Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)
Tables(
"内部某xx表").StopRedraw()
Dim 
nms() As String = {"列a","列b"}
For
 n As Integer = 1 To Sheet.Rows.Count -1
    
Dim bh As String = sheet(n,0).Text
    
Dim dr As DataRow = DataTables("内部某xx表").Find("提单号 = \'" & bh & "\'")
    If 
dr Is Nothing Then \'如果不存在同编号的订单
        
dr =  DataTables("内部某xx表").AddNew()
    End If
    For 
m As Integer = 0 To nms.Length - 1
        
dr(nms(m)) = Sheet(n,m).Value
    Next
Next

Tables(
"内部某xx表").ResumeRedraw()
--  作者:fox-
--  发布时间:2021/9/29 9:14:00
--  
老师应该没有必要没有的提单号,新增加把,因为,我就想把内部表以有的数据添加回那两列