Foxtable(狐表)用户栏目专家坐堂 → 合并表


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

主题:合并表

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
合并表  发帖心情 Post By:2016/7/13 17:36:00 [只看该作者]

Dim Book As New XLS.Book("d:\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()


1\我想把test.xls并入成绩表,要实现如相同考号行值未变的时行跳过,如考号相同行有改变(如姓名),如text有增加行则成表也增加行
2\我想不指定xls,而是用文件对话打开怎么改
请求帮助一个初学者,谢谢

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/13 18:17:00 [只看该作者]

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book("d:\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,4).Text
        Dim dr As DataRow = DataTables("成绩").Find("考号 = '" & bh & "' and 姓名 = '" & sheet(n,5).Text & "'")
        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()
end if

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/7/13 20:53:00 [只看该作者]

很感谢指导,但该代码实现了跳过EXCL表中未改的行,但如果关键列如考号未变,但姓名变了也插入了新行,我是想如果关键值考号不变时其他值变了只做修改,另第四行 Dim Book As New XLS.Book("d:\test.xls")如何改?谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/7/13 20:56:00 [只看该作者]

关键列不变其他列变了,则覆盖;关键列变了则新增;各列不变的行则跳过

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 1:51:00 [只看该作者]

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    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,4).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()
end if

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/7/14 8:20:00 [只看该作者]

太谢谢红袍兄了,你给f我解决了很想达到的结果,谢放帮助,让我一个初学者很快爱了这狐狸精

 回到顶部