Foxtable(狐表)用户栏目专家坐堂 → 帮忙完善下EXCLE导入代码吧~~


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

主题:帮忙完善下EXCLE导入代码吧~~

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
帮忙完善下EXCLE导入代码吧~~  发帖心情 Post By:2013/4/27 20:30:00 [只看该作者]

此项目功能希望改成这样:

来源列如果有 A B C D E F 列

接收列如果有  Q U X Y Z

我在控件上修改后分别对应为

A - Q

B - U

D - X

E - Y

F - Z

其中来源列的C 我将其删除匹配

 

目前代码中是不允许删除来源列,如果我删除了C 导入就会出错了 所以能否改写下……

 

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


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


加好友 发短信
等级:狐精 帖子:3361 积分:24802 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2013/4/27 22:19:00 [只看该作者]

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


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/27 22:30:00 [只看该作者]

以下是引用rjh4078在2013-4-27 22:19:00的发言:
 下载信息  [文件大小:480.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:导入excel.foxdb

 

按图上的设置导入 你就明白什么问题啦

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工作簿x.xlsx


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


加好友 发短信
等级:狐精 帖子:3361 积分:24802 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2013/4/28 9:03:00 [只看该作者]

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

 

产生错误的原因:

删除字段以后 excel表和数据表的对应关系发生变化

所以先确认对应关系 然后再导入


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/28 9:15:00 [只看该作者]

以下是引用rjh4078在2013-4-28 9:03:00的发言:

 下载信息  [文件大小:480.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:导入excel (1).foxdb

 

产生错误的原因:

删除字段以后 excel表和数据表的对应关系发生变化

所以先确认对应关系 然后再导入

如果对应关系就如图H对应第十列 可以正常导入吗?


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/28 9:40:00 [只看该作者]

以下是引用rjh4078在2013-4-28 9:03:00的发言:

 下载信息  [文件大小:480.0 KB  下载次数:4]
图片点击可在新窗口打开查看点击浏览该文件:导入excel (1).foxdb

 

产生错误的原因:

删除字段以后 excel表和数据表的对应关系发生变化

所以先确认对应关系 然后再导入

 

测试了 能正常匹配了 但是出了个错误 再麻烦帮忙看看了

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130428093831.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:狐精 帖子:3361 积分:24802 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2013/4/28 10:14:00 [只看该作者]

不知道你导入的时候的选择是怎样的 

有一点要注意下

excel文件中 被导入的字段名一定要在第一行 并且第一行不能为空

我将关键代码加了下注释 你分析改进下吧

 

 Dim rn As Integer
    Dim cn As Integer
    Dim k As Integer
    Dim k1 As Integer
    Dim cn1 As Integer
    Dim xm As new List(of Integer)
    For k=0 To t2.Rows.count-1
        For cn=0  To sheet.Cols.count-1
            If sheet(0,cn).value=t2.Rows(k)("来源字段") Then ''查找导入字段在excel中第一行的列位置,如果找到就将该列位置加入集合xm
                xm.Add(cn)
            End If
        Next
    Next
    If xm.count>0 Then ''如果获取到列位置
        For rn=1 To sheet.Rows.count-1
            Dim rr As Row=Tables("表A").addnew
            For k=0 To t2.Rows.count-1
                For tt As Integer=0 To xm.count-1
                    If t2.Rows(k)("来源字段")=sheet(0,xm(tt)).value Then ''如果来源字段和接收字段按设定匹配就开始导入
                        rr(t2.Rows(k)("接收字段"))=sheet(rn,XM(tt)).value ‘’将对应excel表的单元格值写入foxtable
                    End If
                Next
               
            Next
        Next
       
    End If

[此贴子已经被作者于2013-4-28 10:21:30编辑过]

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/28 10:28:00 [只看该作者]

以下是引用rjh4078在2013-4-28 10:14:00的发言:

不知道你导入的时候的选择是怎样的 

有一点要注意下

excel文件中 被导入的字段名一定要在第一行 并且第一行不能为空

我将关键代码加了下注释 你分析改进下吧

 

 Dim rn As Integer
    Dim cn As Integer
    Dim k As Integer
    Dim k1 As Integer
    Dim cn1 As Integer
    Dim xm As new List(of Integer)
    For k=0 To t2.Rows.count-1
        For cn=0  To sheet.Cols.count-1
            If sheet(0,cn).value=t2.Rows(k)("来源字段") Then ''查找导入字段在excel中第一行的列位置,如果找到就将该列位置加入集合xm
                xm.Add(cn)
            End If
        Next
    Next
    If xm.count>0 Then ''如果获取到列位置
        For rn=1 To sheet.Rows.count-1
            Dim rr As Row=Tables("表A").addnew
            For k=0 To t2.Rows.count-1
                For tt As Integer=0 To xm.count-1
                    If t2.Rows(k)("来源字段")=sheet(0,xm(tt)).value Then ''如果来源字段和接收字段按设定匹配就开始导入
                        rr(t2.Rows(k)("接收字段"))=sheet(rn,XM(tt)).value ‘’将对应excel表的单元格值写入foxtable
                    End If
                Next
               
            Next
        Next
       
    End If

[此贴子已经被作者于2013-4-28 10:21:30编辑过]

 

好的,谢谢了,ps 以上错误 是在自动匹配的时候 报错的


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


加好友 发短信
等级:狐精 帖子:3361 积分:24802 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2013/4/28 11:23:00 [只看该作者]

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


 回到顶部