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


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

主题:合并表

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


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
合并表  发帖心情 Post By:2016/8/15 10:18: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,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()
End If
想法:以考号为关键例,表中已存在则修改其他例为EXCL中最新值,如完全相同则跳过,如新增有行则新增(要实现EXCL修改后完履盖合并进去)
请问上面代码测试当考号不改,而改姓名时还是要新增加一行呢,而不是按同考号覆盖呢,请指导,谢谢


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/15 10:58:00 [只看该作者]

上传Excel文件测试

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


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

我把(n,0) 改为 (n,5)
 Dim bh As String = sheet(n,0).Text 
这是因为EXCL中考号在第六列
可以了,但万一用户将EXCL中考号列放在其他任意列,为防错怎么办呢?请指教,谢谢!

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


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

也就是说,能不能先判断下EXCL中考号在第几例

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/15 14:34: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 = {"学校代码","单位名称","年级代码","班级","学籍号","考号","姓名"}
Dim i As Integer 
For i As Integer = 0 To Sheet.Cols.Count -1 
    If Sheet(0,i).Text = "考号" Then Exit For
Next

For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim bh As String = sheet(n,i).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


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

For i As Integer = 0 To Sheet.Cols.Count -1 

这句有错:变量i 在封闭模块中存在隐藏变量

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/15 15:06: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, 5).Text
        Dim xm As String = sheet(n, 6).Text
        Dim dr As DataRow = DataTables("成绩").Find("考号 = '" & bh & "' and 姓名 = '" & xm & "'")
        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

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


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

我现在问题是如何FOX表字段顺序与excl  表字段顺序不对应怎么办
如FOX字段顺序"学校代码","单位名称","年级代码","班级","学籍号","考号","姓名"
而excl字段顺序""单位名称","年级代码","学籍号","考号","姓名"学校代码","班级",
甚至更乱,根本不对应呢,主要是想容错,谢谢

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


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

参考

 

下载信息  [文件大小:31.3 KB  下载次数:7]
图片点击可在新窗口打开查看点击浏览该文件:导入excel文件.zip


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


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

打不开呢

 回到顶部
总数 11 1 2 下一页