Foxtable(狐表)用户栏目专家坐堂 → [求助]条件导入问题


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

主题:[求助]条件导入问题

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
[求助]条件导入问题  发帖心情 Post By:2013/9/6 11:01:00 [只看该作者]

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

我要将“初2014级生地结业考试成绩.xls”中的“生物”、“地理”成绩合并到“(条件导入)初中期末成绩统计程序.Table ”中的成绩库中,要求是:“编号”=“编号”、“姓名”=“姓名”。合并代码(动态)如何写?请指教。谢谢!

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


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

参考这里http://www.foxtable.com/help/topics/2334.htm,循环Excel中所有行,然后利用Datatable("表名").Find(条件) http://www.foxtable.com/help/topics/0396.htm  找到对应的表中的行,为对应的列赋值即可.

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2013/9/6 15:23:00 [只看该作者]

代码如下,还是没搞定。如何修改代码?请指教。谢谢!

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "数据库文件|*.dbf;*.xls;*.xlsx|全部|*.*"
If dlg.ShowDialog = DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        If fl.ToLower.EndsWith(".dbf") Then
            Dim wjm As String = FileSys.GetName(fl)
            Dim mg As New Merger
            mg.SourcePath = FileSys.GetParentPath(fl) '指定数据文件所在目录
            mg.Format = "dbase" '指定格式
            mg.SourceTableName =  wjm '指定要合并的dbase文件,无需扩展名
            mg.DataTableName = "成绩库" '指定接收数据的表
            mg.Filter = "[编号] = '编号'And [姓名] = '姓名'" '指定合并条件
            mg.Fields = "生物,地理" '指定要合并的字段(列),不同的字段用逗号隔开,如果不指定,则合并所有字段
            mg.Merge() '开始合并
        Else If fl.ToLower.EndsWith(".xls") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets '引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl '指定数据文件所在目录
                mg.Format = "excel" '指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" '指定接收数据的表
                mg.Filter = "[编号] = '编号'And [姓名] = '姓名'" '指定合并条件
                mg.Fields = "生物,地理" '指定要合并的字段(列),不同的字段用逗号隔开,如果不指定,则合并所有字段.               
                mg.Merge() '开始合并
            Next
        End If
    Next
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/6 15:46:00 [只看该作者]

Dim Book As New XLS.Book("C:\test\初2014级生地结业考试成绩.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,7).Text  '获取编号
    Dim xm As String = sheet(n,8).Text  '获取姓名
    Dim dr As DataRow =  DataTables("成绩库").Find("编号 = '" & bh & "' and 姓名 = '" & xm & "'")
    If dr IsNot Nothing
            dr("生物") = sheet(n,11).text
            dr("地理") = sheet(n,12).text
    End If
Next

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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2013/9/6 16:34:00 [只看该作者]

这是固定路径的合并代码。我是想用动态路径合并,并且数据来源表可能是“dbf” 或“xls” 格式。代码如何?请指教。谢谢!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/6 16:36:00 [只看该作者]

1、dbf没办法

2、固定路径改为活动路径,不是这个问题的重点,你完全可以自己改一下,不要太依赖别人


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


加好友 发短信
等级:一尾狐 帖子:407 积分:3194 威望:0 精华:0 注册:2011/2/28 11:57:00
  发帖心情 Post By:2013/9/6 17:46:00 [只看该作者]

“xls” 格式的动态路径合并已经搞定。谢谢!

 回到顶部