以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于导入不同例内容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111289)

--  作者:stevenfm
--  发布时间:2017/12/19 16:07:00
--  [求助]关于导入不同例内容
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("海报印刷与投递费用")
    Dim cs As String() = {"门店名", "订单号", "印刷量","投递量"}
    Dim cs2 As String() = {3,4,7,8}
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
    For n As Integer = 2 To Sheet.Rows.Count -1
        Dim r As DataRow = t.DataTable.Find("门店名 = \'" & sheet(n, 3).text & "\'")
        If r Is Nothing Then r = t.DataTable.AddNew()
        For i As Integer = 0 To cs2.length-1
            r(cs(i)) = sheet(n, cs2(i)).Text
        Next
    Next
    t.ResumeRedraw()
End If


以上代码可以导入,但是为什么导入每个表都会把原来的覆盖?不知道哪出错了?
[此贴子已经被作者于2017/12/19 16:07:17编辑过]

--  作者:有点甜
--  发布时间:2017/12/19 16:13:00
--  
如果不想覆盖,就这样写
 
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("海报印刷与投递费用")
    Dim cs As String() = {"门店名", "订单号", "印刷量","投递量"}
    Dim cs2 As String() = {3,4,7,8}
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName) \'定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
    For n As Integer = 2 To Sheet.Rows.Count -1
        Dim r As DataRow = nothing \'= t.DataTable.Find("门店名 = \'" & sheet(n, 3).text & "\'")
        If r Is Nothing Then r = t.DataTable.AddNew()
        For i As Integer = 0 To cs2.length-1
            r(cs(i)) = sheet(n, cs2(i)).Text
        Next
    Next
    t.ResumeRedraw()
End If
[此贴子已经被作者于2017/12/19 16:13:28编辑过]