以文本方式查看主题 - 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 -- [求助]怎样用报表编程和合并数据来导入
各位专家和高手 在我上传的附件中有两张报名表,还有个foxtable项目,名为“由报表制数据库”,我想求教,怎样把两张xls的报名表导入到狐表中,使预期结果像foxtable项目中名为“由报表制数据库”的那样形式?报名表中的个人简历、家庭成员和照片都以附件形式存储于狐表,姓名、性别等信息直接导入狐表。报名表xls的格式都是相同的,各项小标题都相同,只是所填写的具体内容不同,报名表xls的命名形式也都相同,只是前面的人名不同。在现实工作中,报名表往往至少是几百人的。
|
||||||||||||
-- 作者:有点蓝 -- 发布时间:2018/8/21 8:55:00 -- 参考:http://www.foxtable.com/webhelp/scr/2492.htm |
||||||||||||
-- 作者:qjm107 -- 发布时间:2018/8/21 22:47: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(0) Dim dr As DataRow = DataTables("报名表").AddNew dr("姓名") = sheet(3,0).Text End If Next
|
||||||||||||
-- 作者:qjm107 -- 发布时间:2018/8/21 22:58:00 -- 我要提取的数据源excel表格如附件中所示。
|
||||||||||||
-- 作者:有点蓝 -- 发布时间: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 --
有点蓝 你好,但是我还有一个问题,我想把张三、李四报名表.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
|