Foxtable(狐表)用户栏目专家坐堂 → Excel导入去重复


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

主题:Excel导入去重复

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


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
Excel导入去重复  发帖心情 Post By:2014/11/11 8:08:00 [只看该作者]

各位老师,请问一下这段代码如何去掉重复内容?


Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls|Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
   ' MessageBox.Show("你选择的是:" & dlg.FileName,"提示") '提示用户选择的文件
    Dim mg As New Merger
    mg.SourcePath =dlg.FileName
    mg.Format = "excel" '指定格式
    mg.SourceTableName = "AA$" '指定要合并的表
    mg.DataTableName = "表A" '指定接收数据的表
    mg.Merge() '开始合并
End If


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/11 8:11:00 [只看该作者]

要用另外的方式,编码合并才能去重复 http://www.foxtable.com/help/topics/2334.htm

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


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/11/11 8:18:00 [只看该作者]

这种的话Excel顺序变了就导入错位了。我在DataColChanged事件判断有重复的删除,为什么第一次重复的时候没有提示,再倒入的时候就有提示工号姓名重复?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入去重复.rar




Select Case e.DataCol.name
    Case "工号","姓名"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("工号") = False AndAlso dr.IsNull("姓名") = False Then
            If e.DataTable.Compute("Count([_Identify])","工号 = '" & dr("工号") & "' And 姓名 = '" & dr("姓名") & "'") > 1 Then
                MessageBox.Show("已经存在相同工号和姓名的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                CurrentTable.Current.Delete()
            End If
        End If
End Select
[此贴子已经被作者于2014-11-11 8:32:23编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/11 8:27:00 [只看该作者]

统一规格顺序比较好, 

如果无法统一,可以遍历第一行(也就是标题) 进行判断

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


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/11/11 8:35:00 [只看该作者]

谢谢  我找到原因了


Select Case e.DataCol.name
    Case "工号","姓名"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("工号") = False AndAlso dr.IsNull("姓名") = False Then
            If e.DataTable.Compute("Count([_Identify])","工号 = '" & dr("工号") & "' And 姓名 = '" & dr("姓名") & "'") >= 1 Then
                MessageBox.Show("已经存在相同工号和姓名的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                CurrentTable.Current.Delete()
            End If
        End If
End Select

 回到顶部