Foxtable(狐表)用户栏目专家坐堂 → Excel合并到表的问题


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

主题:Excel合并到表的问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/13 9:45:00 [显示全部帖子]

1、合并以后删除,或者用这种方法

 

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

 

2、可应用这种方法

 

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

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/13 9:53:00 [显示全部帖子]

 那你就导入后

 

1、删除重复

 

2、循环每一行,引用数据到表B

 

删除重复参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=87415&skin=0

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/13 10:06:00 [显示全部帖子]

 上传实例

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/13 10:44:00 [显示全部帖子]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel"
    mg.SourceTableName = "cs$" '指定要合并的表
    mg.DataTableName = "表A" '指定接收数据的表
    mg.FieldMaps.Add("姓名","第一列" ) '将指定ID列的数据合并到编号列中
    mg.FieldMaps.Add("基础代码","第二列" ) '将指定ID列的数据合并到编号列中
    mg.FieldMaps.Add("基础金额","第三列" ) '将指定ID列的数据合并到编号列中
    mg.FieldMaps.Add("地址码","第四列" ) '将指定ID列的数据合并到编号列中
    mg.Merge() '开始合并
    Dim idx As String = "-1,"
    Dim idx_temp As String = ""
    Dim pdr As DataRow = Nothing
    Dim count As Integer = 0
    Dim cs As String = "第一列,第二列,第三列,第四列"
    For Each dr As DataRow In DataTables("表A").Select("", cs)
        Dim flag As Boolean = False
        If pdr IsNot Nothing Then
            For Each c As String In cs.split(",")
                If pdr(c) <> dr(c) Then
                    flag = True
                    Exit For
                End If
            Next
            If flag Then
                If count > 1 Then
                    idx &= idx_temp
                End If
                count = 1
                idx_temp = ""
            Else
                count += 1
                idx_temp &= dr("_Identify") & ","
            End If
        Else
            count += 1
        End If
        pdr = dr
    Next
   
    If count > 1 Then
        idx &= idx_temp
    End If
   
    DataTables("表A").DeleteFor("_Identify In (" & idx.trim(",") & ")")
   
    For Each dr As DataRow In DataTables("表A").Select("")
        If dr.RowState = DataRowState.Added Then
            Dim fdr As DataRow = DataTables("表B").Find("第一列 = '" & dr("第一列") & "'")
            If fdr IsNot Nothing Then
                dr("第五列") = fdr("_Identify")
            End If
        End If
    Next
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/13 16:27:00 [显示全部帖子]

方法一:第二列不要用逻辑列,改成字符列吧。

 

方法二:excel那里,这一列的内容,改成true, false。

 

方法三:可以参考这个例子

 

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


 回到顶部