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


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

主题:文件合并

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


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

请问下我的成绩表里有学校代码,单位名称,年级代码,班级,学籍号,考号,姓名。。。,在各学校上报考试信息时将以上7个字段的内容打开个同结构的EXCl文件合并进去,但有个要求是如果考号字段内容已存在就要看其他6个字段内容有没有修改,如有改则用EXCL中新改后的内容覆盖,如不存在则添加,如完全相同的行则跳过。(因为报名时有可能发现错误,修改EXCL内容,还有可能出增加漏报学生,或删除,此时就需重新导入合并)
 研究了些时间不得行,请求帮忙指导,谢谢!

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/15 7:49:00 [只看该作者]

这个完全可以,参考:

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

 

我帮你简化一下逻辑;

已经存在的行,这7列采用excel中的数据,不存在的则增加行。


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/8/15 9: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,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

请问上面代码测试当考号不改,而改姓名时还是要新增加一行呢,而不是按同考号覆盖呢

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


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

请帮忙一下,谢谢

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


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

考号是Execl表格的第一列吗

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


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

就是想以EXCL表中最新内容导入,但现在情况是原有的记录仍然新增进去,而不是按考号唯一值对比修改,谢谢

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


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

请回答5楼问题

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


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

不是,是第六例

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


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

在您的提示下,我改了这句  
 Dim bh As String = sheet(n,0).Text 
为 Dim bh As String = sheet(n,5).Text 
现在考号不变是不会再增加重复行了,但如果EXCL中把001考号的姓名改了,重新合并进去001考号的姓名不变呢

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


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

对了,谢谢

 回到顶部