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


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

主题:Excel合并到表的问题

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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
Excel合并到表的问题  发帖心情 Post By:2016/7/13 9:43:00 [只看该作者]


此主题相关图片如下:cw.jpg
按此在新窗口浏览图片

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() '开始合并
End If

不同名称列合并

2个问题

1、如果姓名、基础代码、基础金额、地址码相同,则不合并,这句代码怎么写

2、如何在和并过程中,如果姓名和地址码的内容和表B的员工姓名、地址代码列的内容相同,则将表B的“_Identify”复制到表A的第五列中

这些按键代码怎么写啊

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2016/7/13 9:49:00 [只看该作者]

因为列名称不同,所以不会搞,能帮我改一下吗?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2016/7/13 10:05:00 [只看该作者]

看不懂,能不能帮我改一下

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


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

 上传实例

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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2016/7/13 10:14:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:不同列名导入.table

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:测试.xls

1、如果姓名、基础代码、基础金额、地址码相同,则不合并,这句代码怎么写

2、如何在和并过程中,如果姓名和地址码的内容和表B的员工姓名、地址代码列的内容相同,则将表B的“_Identify”复制到表A的第五列中,如果没有则空


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2016/7/13 12:38:00 [只看该作者]

如果“基础代码"和"第二列”是逻辑列的话怎么合并啊

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


加好友 发短信
等级:二尾狐 帖子:524 积分:3676 威望:0 精华:0 注册:2012/7/27 10:28:00
  发帖心情 Post By:2016/7/13 12:41:00 [只看该作者]

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.6.26.1
错误所在事件:
详细错误信息:
该字符串未被识别为有效的布尔值。不能在 第二列 列中存储 <0>。所需类型是 Boolean。
该字符串未被识别为有效的布尔值。

图片点击可在新窗口打开查看此主题相关图片如下:cw.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/7/13 12:46:05编辑过]

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