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


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

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

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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文件格式一定要正确,我先导出,再合并,没有问题。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/17 17:23:00 [显示全部帖子]

 是的,只需要改红色的代码。

 

 代码的意思是,循环excel表格的每一行,取出单元格的值,跟foxtable的表格比较,是否存在,不存在,就加一行,接着循环每一列,把excel单元格的内容写进去


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/20 11:27: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,2).Text
        If DataTables("正式职工").Find("身份证号= '" & bh & "'") Is Nothing Then '如果不存在同"题目"的学术论文
            Dim r As Row = Tables("正式职工").AddNew()
            For m As Integer = 0 To nms.Length - 1
                If Sheet(n,m).Text <> "" Then
                    r(nms(m)) = Sheet(n,m).Value
                End If
            Next
        End If
    Next
    Tables("正式职工").ResumeRedraw()
End If


 回到顶部