以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Excel合并到表的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87531) |
||||||||
-- 作者:hongyefor -- 发布时间:2016/7/13 9:43:00 -- Excel合并到表的问题 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog 不同名称列合并 2个问题 1、如果姓名、基础代码、基础金额、地址码相同,则不合并,这句代码怎么写 2、如何在和并过程中,如果姓名和地址码的内容和表B的员工姓名、地址代码列的内容相同,则将表B的“_Identify”复制到表A的第五列中 这些按键代码怎么写啊
|
||||||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/7/13 9:49:00 -- 因为列名称不同,所以不会搞,能帮我改一下吗? |
||||||||
-- 作者:大红袍 -- 发布时间:2016/7/13 9:53:00 -- 那你就导入后
1、删除重复
2、循环每一行,引用数据到表B
删除重复参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=87415&skin=0
|
||||||||
-- 作者:hongyefor -- 发布时间:2016/7/13 10:05:00 -- 看不懂,能不能帮我改一下 |
||||||||
-- 作者:大红袍 -- 发布时间:2016/7/13 10:06:00 -- 上传实例 |
||||||||
-- 作者:hongyefor -- 发布时间:2016/7/13 10:14:00 --
1、如果姓名、基础代码、基础金额、地址码相同,则不合并,这句代码怎么写 2、如何在和并过程中,如果姓名和地址码的内容和表B的员工姓名、地址代码列的内容相同,则将表B的“_Identify”复制到表A的第五列中,如果没有则空 |
||||||||
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/7/13 12:38:00 -- 如果“基础代码"和"第二列”是逻辑列的话怎么合并啊 |
||||||||
-- 作者:hongyefor -- 发布时间: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编辑过]
|