Foxtable(狐表)用户栏目专家坐堂 → 相同格式多Excel表合并


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

主题:相同格式多Excel表合并

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/13 17:02:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/13 17:53:00 [显示全部帖子]

以下是引用表叔在2018/9/13 17:23:00的发言:
我的意思是,像上传的那样的文件有许多,格式结构都一样,需要合并多张表,并且每张表里面的客户名称(不在数据列中,在表头)自动赋值到合并后的table,每张表都有不同的客户。

 

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("表B")
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    msgbox(sheet(10,1).text)
    For n As Integer = 15 To Sheet.Rows.Count -1
        Dim r As DataRow = t.DataTable.Find("第一列 = '" & sheet(n, 0).text & "'")
        If r Is Nothing Then r = t.DataTable.AddNew()
        For i As Integer = 0 To sheet.Cols.Count -1
            Dim cname As String = sheet(14, i).text
            output.show(sheet(n, i).Text)
            If t.Cols.Contains(cname) Then
                r(cname) = sheet(n, i).Text
            End If
        Next
    Next
    t.ResumeRedraw()
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/17 12:27:00 [显示全部帖子]

If MainTable.Name = "成品统计表" Then
    For Each file As String In filesys .GetFiles("C:\Users\福义\Desktop\产品统计\产品开piao信息")
        If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
            Dim Book As New XLS.Book(file)
            Dim Sheet As XLS.Sheet = Book.Sheets(0)
            Dim jsdw As String = sheet(11,1).Text

msgbox(jsdw)
            Dim nms() As String = {"行号","商品编号","商品名称","单据日期","单据类型","单据编号","出库数量","原币出库金额","开piao数量","原币开piao金额","未开piao数量","原币未开piao金额","超额开piao数量","原币超额开piao金额","手工开piao数量","原币手工开piao金额"}
            For n As Integer = 16 To Sheet.Rows.Count -1 '注意下面的循环变量从2开始,而不是从0开始,因为Excel表的第1-2行是标题和列名
                Dim r As Row = Tables("成品统计表").AddNew()
                For m As Integer = 0 To nms.Length - 1
                    r(nms(m)) = Sheet(n,m).Value
                Next

r("结算单位") = jsdw
            Next
        End If
    Next
End


 回到顶部