Foxtable(狐表)用户栏目专家坐堂 → [求助]多张excel合并成一张


  共有2700人关注过本帖树形打印复制链接

主题:[求助]多张excel合并成一张

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 9:34:00 [显示全部帖子]

参考:http://www.foxtable.com/webhelp/scr/2334.htm

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    Tables("订单").StopRedraw()
    For Each fn As String In dlg.FileNames
        Dim Book As New XLS.Book(fn)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        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
    Next
    Tables("订单").ResumeRedraw()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 11:48:00 [显示全部帖子]

4楼,没看懂你的意思

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 12:07:00 [显示全部帖子]

......
 For n As Integer = 1 To Sheet.Rows.Count -1
            Dim bh As String = sheet(n,0).Text
Dim cp As String = sheet(n,1).Text
            Dim dr As DataRow = DataTables("订单").Find("编号 = '" & bh & "' and 产品='" & cp & "'")
            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
......

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 14:20:00 [显示全部帖子]

1楼这种情况只能用代码处理。如果没有代码基础,只能是自己在Execl合并数据并过滤重复数据后再导入狐表。



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 15:28:00 [显示全部帖子]

先导入第一张表,假设名称为“成绩表”

第二张以上的表,参考下面代码
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    Tables("成绩表").StopRedraw()
    For Each fn As String In dlg.FileNames
        Dim Book As New XLS.Book(fn)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        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
    Next
    Tables("成绩表").ResumeRedraw()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/6 16:37:00 [显示全部帖子]

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    Tables("成绩表").StopRedraw()
    For Each fn As String In dlg.FileNames
        Dim Book As New XLS.Book(fn)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        Dim nms() As String = {"姓名","选课","成绩","学分","备注"}
        For n As Integer = 1 To Sheet.Rows.Count -1
            Dim bh As String = sheet(n,0).Text
            Dim xk As String = sheet(n,1).Text
            Dim dr As DataRow = DataTables("成绩表").Find("姓名 = '" & bh & "' and 选课='" & xk & "'")
            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
    Next
    Tables("成绩表").ResumeRedraw()
End If

 回到顶部