Foxtable(狐表)用户栏目专家坐堂 → 一键导入多表


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

主题:一键导入多表

帅哥,在线噢!
15666282205
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:4254 威望:0 精华:0 注册:2019/1/13 10:12:00
一键导入多表  发帖心情 Post By:2019/7/26 20:23:00 [只看该作者]

能否设计代码,点击一次按钮,将一个excel数据导入两个或多个表里呢?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/26 21:08:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/2334.htm

比如:

'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -
    Dim 
r As Row = Tables("订单").AddNew()
    For 
m As Integer = 0 To nms.Length - 1
         
r(nms(m)) = Sheet(n,m).Value
    Next
r = Tables("第二个表").AddNew()
    For m As Integer = 0 To nms.Length - 1
         
r(nms(m)) = Sheet(n,m).Value
    Next

Next

 回到顶部
帅哥,在线噢!
15666282205
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:4254 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/7/26 21:49:00 [只看该作者]

老师,如果excel表格的第一行和第二行不导入,除了导入前删除外,能用代码实现吗?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/26 22:15:00 [只看该作者]

'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 3 To Sheet.Rows.Count -

 回到顶部
帅哥,在线噢!
15666282205
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:4254 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/7/27 21:17:00 [只看该作者]

老师,我看了您写的代码,帮助里是指定文件存放位置导入。我想把您的编码和随意选择文件夹结合起来,没试验成功,请指点一下好吗?

 回到顶部
帅哥,在线噢!
15666282205
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:4254 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/7/27 21:32:00 [只看该作者]

Dim Book As New XLS.Book("D:\问题\新建文件夹\采购.xls")

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("当月采购").StopRedraw()
'Dim nms() = {"供应商","单据类型","入库日期","单号","物料编码","货物名称","规格","单位","数量","单价","金额","付款情况"}
Dim a As Table = Tables("当月采购")     
For i As Integer = 0 To a.Rows.count-1

   For n As Integer = 1 To Sheet.Rows.Count -1


 回到顶部
帅哥,在线噢!
15666282205
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:4254 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/7/27 21:33:00 [只看该作者]

类似的代码,需要把固定位置D盘,改为自由选择文件夹

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/28 21:04:00 [只看该作者]


 回到顶部
帅哥,在线噢!
15666282205
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:538 积分:4254 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2019/7/29 20:14:00 [只看该作者]

''-----------------------------------------代码导入数据-----------------------------------------
'Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog 
'dlg.Filter= "Excel文件|*.xls" '设置筛选器
'If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    'MessageBox.Show("你选择的是:" & dlg.FileName,"提示") '提示用户选择的文件
'End If
'--------------------------------------------------      -上下怎样结合起来呢?----------------
'Dim Book As New XLS.Book("c:\test\考勤记录.xls")
'Dim Sheet As XLS.Sheet = Book.Sheets(0)
'Tables("当月刷脸").StopRedraw()
''注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
'Dim nms() As String = {"员工号","姓名","所属部门","D1","D2","D3","D4","D5","D6","D7"
''注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
'For n As Integer = 1 To Sheet.Rows.Count -1
'Dim r As Row = Tables("当月刷脸").AddNew()
'For m As Integer = 0 To nms.Length - 1
'r(nms(m)) = Sheet(n,m).Value
'Next
'Next
'Tables("当月刷脸").ResumeRedraw()
''End If


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/29 21:13:00 [只看该作者]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
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 = {"员工号","姓名","所属部门","D1","D2","D3","D4","D5","D6","D7"
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As Row = Tables("当月刷脸").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    Next
    Tables("当月刷脸").ResumeRedraw()
End If

 回到顶部