以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎样用报表编程和合并数据来导入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123676)

--  作者:qjm107
--  发布时间:2018/8/20 22:53:00
--  [求助]怎样用报表编程和合并数据来导入
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:李四 报名表.xls

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

各位专家和高手
      在我上传的附件中有两张报名表,还有个foxtable项目,名为“由报表制数据库”,我想求教,怎样把两张xls的报名表导入到狐表中,使预期结果像foxtable项目中名为“由报表制数据库”的那样形式?报名表中的个人简历、家庭成员和照片都以附件形式存储于狐表,姓名、性别等信息直接导入狐表。报名表xls的格式都是相同的,各项小标题都相同,只是所填写的具体内容不同,报名表xls的命名形式也都相同,只是前面的人名不同。在现实工作中,报名表往往至少是几百人的。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:由报表制数据库.table


--  作者:有点蓝
--  发布时间:2018/8/21 8:55:00
--  
参考:http://www.foxtable.com/webhelp/scr/2492.htm
--  作者:qjm107
--  发布时间:2018/8/21 22:47:00
--  
有点蓝
      你好,我模仿写出以下代码,试着提取姓名的数据,出现的结果是如附件图所示,请问错误出在哪?
图片点击可在新窗口打开查看此主题相关图片如下:显示出错.jpg
图片点击可在新窗口打开查看
For Each file As String In filesys .GetFiles("c:\\Data")
    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(3,0).Text
    End If
Next

--  作者:qjm107
--  发布时间:2018/8/21 22:58:00
--  
我要提取的数据源excel表格如附件中所示。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:李四 报名表.xls


--  作者:有点蓝
--  发布时间:2018/8/21 23:00:00
--  
帮助的代码是不能完全照搬的,如果完全看不懂,请先系统学习一下。
--  作者:qjm107
--  发布时间:2018/8/23 22:51:00
--  
有点蓝
      你好,这次我从报表编程开始学习了一遍,又把代码作了修改如下,可想要的结果还是出不来,请问问题出在哪儿?

For Each file As String In filesys .GetFiles("c:\\Data")
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets("正面")
        Dim dr As DataRow = DataTables("报名表").AddNew
        For i As Integer = 0 To 9
            Sheet(i, 0).Value = (i + 1) * 10
            Sheet(i, 1).Value = (i + 1) * 100
            Sheet(i, 2).Value = (i + 1) * 1000
        Next
        dr("姓名") = sheet(3,1).Text
        Dim fl As String = ProjectPath & "Attachments\\" & dr("姓名") & ".jpg"
        If Sheet(4,4).SaveImage(fl) Then
            dr("照片") = fileSys.GetName(fl)
        End If
    End If
Next

--  作者:qjm107
--  发布时间:2018/8/23 22:53:00
--  
这样修改后,结果仍出不来。
For Each file As String In filesys .GetFiles("c:\\Data")
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim Book As New XLS.Book(file)
        Dim Sheet As XLS.Sheet = Book.Sheets("正面")
        Dim dr As DataRow = DataTables("报名表").AddNew
        For i As Integer = 0 To 9
            Sheet(i, 0).Value = (i + 1) * 10
            Sheet(i, 1).Value = (i + 1) * 100
            Sheet(i, 2).Value = (i + 1) * 1000
        Next
        dr("姓名") = sheet(3,1).Text
        Dim fl As String = ProjectPath & "Attachments\\" & dr("姓名") & ".jpg"
        If Sheet(2,5).SaveImage(fl) Then
            dr("照片") = fileSys.GetName(fl)
        End If
    End If
Next

--  作者:有点蓝
--  发布时间:2018/8/24 8:59:00
--  
把【编程基础】和【foxtable编程】先系统学习一下。

帮助的代码基本改表名和列名,以及单元格的位置就可以了,而不是乱改。
dr("姓名") = sheet(4,1).Text \'这里4,1指的是execl第5行,第2列的单元格(行列索引从0开始计算)


Dim Book As New XLS.Book("e:\\问题\\李四 报名表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
\'Dim dr As DataRow = DataTables("员工").AddNew
msgbox(sheet(17,1).Text)
\'dr("姓名") = sheet(17,1).Text


--  作者:qjm107
--  发布时间:2018/8/25 21:33:00
--  
有点蓝
      你好,这次我又重新修改了代码,如下,结果是能出来了,确实把报名表.xls中张三、李四的姓名和照片都分别提取到第一二列了
For Each file As String In filesys .GetFiles("c:\\Foxtable")
    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("表B").AddNew
        dr("第一列") = sheet(3,2).Text
        Dim fl As String = ProjectPath & "Attachments\\" & dr("第一列") & ".jpg"
        If Sheet(2,5).SaveImage(fl) Then
            dr("第二列") = fileSys.GetName(fl)
        End If
    End If
Next

--  作者:qjm107
--  发布时间:2018/8/25 21:46:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:张三报名表.xlsx

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

有点蓝
      你好,但是我还有一个问题,我想把张三、李四报名表.xls中的已被我用浅绿色填充的“家庭成员情况区域”B17:G19单独复制到一个新的xls文件并以文件附件的形式存储到第三列。第三列的  列属性——扩展列类型  也被我修改为文件或多文件了,我写出的代码如下,但是结果出不来,请指教,错误在哪儿,该怎么修改
For Each file As String In filesys .GetFiles("c:\\Foxtable")
    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("表B").AddNew
        dr("第一列") = sheet(3,2).Text
        Dim fl As String = ProjectPath & "Attachments\\" & dr("第一列") & ".jpg"
        If Sheet(2,5).SaveImage(fl) Then
            dr("第二列") = fileSys.GetName(fl)
            Dim fl As String = ProjectPath & "Attachments\\" & dr("第一列"and"的家庭成员") & ".xls"
            If Sheet(B17:G19).SaveImage(fl) Then
                dr("第三列") = fileSys.GetName(fl)
            End If
        End If
    End If
Next
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:由报表制数据库.table