Foxtable(狐表)用户栏目专家坐堂 → [求助]excel 导入时存在的问题


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

主题:[求助]excel 导入时存在的问题

美女呀,离线,留言给我吧!
hch
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
[求助]excel 导入时存在的问题  发帖心情 Post By:2015/3/14 22:05:00 [只看该作者]

问题1、用高速合并方式虽可以将外部excel 数据导入狐表中,但导入时发现相同数据无覆盖导入,出现相同数据重复导入,采取“更新同主键记录”或“跳过同主键记录”方法导入,仍出现相同数据重复导入,如何解决重复导入问题?问题2:用高速导入外部的excel 数据,发现导入时需新命名一个新表名才能导入数据,如何将外部的excel 数据直接导入到与狐表中表结构一致的表中?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/15 9:45:00 [只看该作者]

 编写代码合并

 

 http://www.foxtable.com/help/topics/2334.htm

 


 回到顶部
美女呀,离线,留言给我吧!
hch
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/3/15 12:54:00 [只看该作者]

     编写好代码放在狐表中什么地方,点击那个按钮就可完成“导入合并统计”工作。我参考帮助文件提示写的“合并统计”代码字段如下:费心看看有何问题存在,若有问题请给与正确代码提示。
Dim Book As New XLS.Book("C:\Documents and Settings\Administrator\桌面\学术论文.xls") 
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("学术论文").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"年份","作者姓名","科别","职称","职称级别","论文题目","刊登杂志名称","发表期刊年月","登记时间","期刊类别","专业分类","著作情况"} 
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim bh As String = sheet(n,0).Text 
    If DataTables("学术论文").Find("论文题目= '" & bh & "'") Is Nothing Then '如果不存在同“题目”的学术论文
        Dim r As Row = Tables("学术论文").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("学术论文").ResumeRedraw()

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/15 14:08:00 [只看该作者]

Dim bh As String = sheet(n,0).Text

 

改成

 

Dim bh As String = sheet(n,5).Text


 回到顶部
美女呀,离线,留言给我吧!
hch
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/3/16 9:59:00 [只看该作者]

    把修改好的代码字段放置在什么地方,操作那个菜单下按钮就可正常导入合并数据。

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


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

自己设计一个菜单按钮.放到Click事件去

 回到顶部
美女呀,离线,留言给我吧!
hch
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/3/16 11:47:00 [只看该作者]

     按你的提示在杂项菜单下设计了“自定义合并”菜单按钮,把代码放在该菜单按钮的Click事件中后测试无法完成合并导入,现将文件传上请具体
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理系统.table

指导一下,谢谢。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/16 11:52:00 [只看该作者]

 测试了一下,下面这段代码没有问题

 

Dim dlg As new OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("学术论文").StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"年份","作者姓名","科别","职称","职称级别","论文题目","刊登杂志名称","发表期刊年月","登记时间","期刊类别","专业分类","著作情况"}
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,5).Text
        If DataTables("学术论文").Find("论文题目= '" & bh & "'") Is Nothing Then '如果不存在同"题目"的学术论文
            Dim r As Row = Tables("学术论文").AddNew()
            For m As Integer = 0 To nms.Length - 1
                r(nms(m)) = Sheet(n,m).Value
            Next
        End If
    Next
    Tables("学术论文").ResumeRedraw()
End If

 

1、你Datacolchanged事件的代码请删除;

 

2、你的excel文件格式一定要正确,我先导出,再合并,没有问题。


 回到顶部
美女呀,离线,留言给我吧!
hch
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/3/16 19:54:00 [只看该作者]

非常感谢有点甜老师耐心指导,问题解决。

 回到顶部
美女呀,离线,留言给我吧!
hch
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:110 积分:1170 威望:0 精华:0 注册:2012/9/12 15:30:00
  发帖心情 Post By:2015/3/17 17:20:00 [只看该作者]

如果我在导入合并其他表,类似该结构时,代码是不是只需改变颜色改变部分的代码内容即可,
    能否把 Dim bh As String = sheet(n,5).Text  这段代码的具体含义给与说明,谢谢。


Dim dlg As new OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("学术论文").StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"年份","作者姓名","科别","职称","职称级别","论文题目","刊登杂志名称","发表期刊年月","登记时间","期刊类别","专业分类","著作情况"}
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,5).Text
        If DataTables("学术论文").Find("论文题目= '" & bh & "'") Is Nothing Then '如果不存在同"题目"的学术论文
            Dim r As Row = Tables("学术论文").AddNew()
            For m As Integer = 0 To nms.Length - 1
                r(nms(m)) = Sheet(n,m).Value
            Next
        End If
    Next
    Tables("学术论文").ResumeRedraw()
End If

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