以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于从excel中提取内容  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=140090)

--  作者:ygg8310
--  发布时间:2019/8/29 11:08:00
--  关于从excel中提取内容

这段代码在实际中会出现只能新增行却不能在Table中填写数据
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题代码.rar


--  作者:有点蓝
--  发布时间:2019/8/29 11:18:00
--  
Tables("表B").StopRedraw()放到循环外面

另外确定"卡号"是在execl的第一列?

--  作者:ygg8310
--  发布时间:2019/8/29 13:36:00
--  

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

            Dim r As Row = Tables("B").AddNew()

            For m As Integer = 0 To nms.Length - 2

                r(nms(m)) = Sheet(n,m).Value

           

        Next

    Next

Tables("B").ResumeRedraw()

 

End If

Next

是这样吗?


--  作者:有点蓝
--  发布时间:2019/8/29 14:30:00
--  
Tables("表B").StopRedraw()
For Each file As String In filesys .GetFiles("d:\\ceshi\\excel3")
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)

        \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
        Dim nms() As String = {"卡号"}
        \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
        For n As Integer = 1 To Sheet.Rows.Count -2
            Dim r As Row = Tables("表B").AddNew()
            For m As Integer = 0 To nms.Length - 2
                r(nms(m)) = Sheet(n,m).Value
            
        Next
    Next
End If
Next

Tables("表B").ResumeRedraw()

--  作者:ygg8310
--  发布时间:2019/8/30 10:29:00
--  
已解决谢谢老师!