以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎样从类似的excel表格把数据批量导入狐表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145181)

--  作者:qjm107
--  发布时间:2020/1/10 21:41:00
--  [求助]怎样从类似的excel表格把数据批量导入狐表
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表张三.xlsx

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表王五.xlsx

各位专家:
     大家好,我现在有一批excel表格,它们都有一个共同特点,若某个单元格的内容是“姓名:”,它右边一个单元格的内容就是报名人员的姓名,如张三、李四等,现在我想把这些姓名数据都导入狐表,如附件中所示,请问代码怎样编写?之前讨论过的类似代码如下,要求所有的姓名都在excel的同一个位置的单元格,才能实现,而此次我上传的这3个excel中,姓名都不在excel的同一位置的单元格。
For Each file As String In filesys .GetFiles("f:\\报名表")
    If 
file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim 
Book As New XLS.Book(file)
        Dim 
Sheet As XLS.Sheet = Book.Sheets(0)
        Dim 
dr As DataRow = DataTables("报名表").AddNew
        
dr("姓名") = sheet(1
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表李四.xlsx

,1).Text
    End If
Next

--  作者:qjm107
--  发布时间:2020/1/10 21:41:00
--  
狐表命名如附件所示
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表.table


--  作者:qjm107
--  发布时间:2020/1/10 21:43:00
--  
之前讨论的如此链接所示,参考:http://www.foxtable.com/webhelp/scr/2492.htm
--  作者:有点蓝
--  发布时间:2020/1/10 22:18:00
--  
如果每个表格的格式都不一样,只能是给每个表格写一段对应的导入代码。
--  作者:qjm107
--  发布时间:2020/1/12 21:36:00
--  
其实,我想咨询的是,如果这一批excel表格,它们都有一个共同特点,若某个单元格的内容是“姓名:”,它右边一个单元格的内容就是报名人员的具体姓名。能否依据这个共同特点,运用人工智能或类似人工智能技术的编程代码来实现导入?
--  作者:有点蓝
--  发布时间:2020/1/12 22:29:00
--  
遍历所有单元格,如果某个 单元格值为“姓名:”,则取右边一个单元格值填入姓名列,类似

Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
Dim r As Row = Tables("订单").AddNew()
For n As Integer = 0 To Sheet.Rows.Count -
    For 
m As Integer = 0 To Sheet.Cols.Count1
      if 
Sheet(n,m).Value = “姓名:” then 
r("姓名") = Sheet(n,m+1).Value
end if
    Next
Next
Tables(
"订单").ResumeRedraw()

--  作者:qjm107
--  发布时间:2020/1/14 21:15:00
--  
各位专家们
关于上面的类似代码,我也写了如下一段去试验,但是,有错误提示信息,并且也出不来结果,请问需要怎么修改。注:3个类似的excel表格,我已放入计算机F盘的“报名”文件夹里了。请问代码还需怎么修改?

For Each file As String In filesys .GetFiles("f:\\报名")
If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
Dim Book As New XLS.Book(file)Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("报名表").StopRedraw()
Dim r As Row = Tables("报名表").AddNew()
For n As Integer = 0 To Sheet.Rows.Count -1
    For m As Integer = 0 To Sheet.Cols.Count- 1
        If Sheet(n,m).Value = "姓名:" Then
            r("姓名") = Sheet(n,m+1).Value
        End If
    Next
Next
Tables("报名表").ResumeRedraw()

--  作者:有点蓝
--  发布时间:2020/1/14 21:58:00
--  
Tables("报名表").StopRedraw()
For Each file As String In filesys .GetFiles("f:\\报名")
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        ‘’Output.Show(Sheet.Rows.Count & "," & Sheet.Cols.Count)
        Dim r As Row = Tables("报名表").AddNew()
        For n As Integer = 0 To Sheet.Rows.Count -1
            For m As Integer = 0 To Sheet.Cols.Count- 1
        ‘’Output.Show(Sheet(n,m).Value )
                If Sheet(n,m).Value = "姓名:" Then
                    r("姓名") = Sheet(n,m+1).Value
                End If
            Next
        Next
    End If
Next
Tables("报名表").ResumeRedraw()

--  作者:qjm107
--  发布时间:2020/1/16 21:57:00
--  
谢谢你,有点蓝,姓名这一列的结果能出来了,但在狐表中,姓名这一列的右边还有“性别”和“身份证号”列,同样,在对应的Excel中,张三、李四、王五的真实性别和身份证号码也都在左边单元格的值分别为“性别:”和“身份证号:”的相应单元格中,请问,在此种情况下,要同时提取,对应的Excel中,张三、李四、王五等这一批人的性别和身份证号,代码需怎样修改,我修改的代码如下,但结果出不来,请问,代码存在哪儿,还需修改哪儿?

Tables("报名表").StopRedraw()
For Each file As String In filesys .GetFiles("f:\\报名")
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        \'\'Output.Show(Sheet.Rows.Count & "," & Sheet.Cols.Count)
        Dim r As Row = Tables("报名表").AddNew()
        For n As Integer = 0 To Sheet.Rows.Count -1
            For m As Integer = 0 To Sheet.Cols.Count- 1
                \'\'Output.Show(Sheet(n,m).Value )
                If Sheet(n,m).Value = "姓名:" Then
                    r("姓名") = Sheet(n,m+1).Value
                    If Sheet(n,m).Value = "性别:" Then
                        r("性别") = Sheet(n,m+1).Value
                        If Sheet(n,m).Value = "身份证号:" Then
                            r("身份证号") = Sheet(n,m+1).Value
                        End If  
                    Next
                End If
            Next    
        Next
    End If
Next
End If
Next
Tables("报名表").ResumeRedraw()

--  作者:qjm107
--  发布时间:2020/1/16 21:58:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表王五.xlsx

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表李四.xlsx

附件,我再传一遍。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:报名表张三.xlsx