以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  一键导入多表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138275)

--  作者:15666282205
--  发布时间:2019/7/26 20:23:00
--  一键导入多表
能否设计代码,点击一次按钮,将一个excel数据导入两个或多个表里呢?
--  作者:有点蓝
--  发布时间: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
--  发布时间:2019/7/26 21:49:00
--  
老师,如果excel表格的第一行和第二行不导入,除了导入前删除外,能用代码实现吗?
--  作者:有点蓝
--  发布时间:2019/7/26 22:15:00
--  
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 3 To Sheet.Rows.Count -
--  作者:15666282205
--  发布时间:2019/7/27 21:17:00
--  
老师,我看了您写的代码,帮助里是指定文件存放位置导入。我想把您的编码和随意选择文件夹结合起来,没试验成功,请指点一下好吗?
--  作者:15666282205
--  发布时间: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
--  发布时间:2019/7/27 21:33:00
--  
类似的代码,需要把固定位置D盘,改为自由选择文件夹
--  作者:有点蓝
--  发布时间:2019/7/28 21:04:00
--  
参考:http://www.foxtable.com/webhelp/topics/0328.htm
--  作者:15666282205
--  发布时间: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


--  作者:有点蓝
--  发布时间: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