以文本方式查看主题

-  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=113600)

--  作者:yifan3429
--  发布时间:2018/1/19 11:13:00
--  从Excel报表提取数据

下面代码是指定位置的读取

根据表头 向下读取所有的数据怎么编程
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180119111005.png
图片点击可在新窗口打开查看

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(4,1).Text
dr
("部门") = sheet(5,1).text
dr
("出生日期") = sheet(4,3).text
dr
("雇佣日期") = sheet(5,3).text
dr
("性别") = sheet(6,1).text
dr
("职务") = sheet(6,3).text
dr
("地址") = sheet(7,1).text
dr
("家庭电话") = sheet(8,1).text
dr
("办公电话") = sheet(8,3).text
dr
("备注") = sheet(9,0).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


--  作者:有点甜
--  发布时间:2018/1/19 11:45:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/2334.htm

 


--  作者:yifan3429
--  发布时间:2018/1/19 16:00:00
--  
Dim Book As New XLS.Book("D:\\test\\第1批.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("表A").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"序号","楼层","区域","图例","名称","长","宽","厚","材质说明","单位","数量","单价","合价元","备注"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim r As Row = Tables("表A").AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
Dim fl As String = ProjectPath & "Attachments\\" & r("图例") & ".jpg"
If Sheet(4,4).SaveImage(fl) Then \'如果照片保存成功
r("图例") = fileSys.GetName(fl)
End If
    Next
Next
Tables("表A").ResumeRedraw()

表格内的图片不能导入

--  作者:有点甜
--  发布时间:2018/1/19 16:09:00
--  

如果有问题,实例发上来测试

 

Dim Book As New XLS.Book("D:\\test\\第1批.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("表A").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"序号","楼层","区域","图例","名称","长","宽","厚","材质说明","单位","数量","单价","合价元","备注"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As Row = Tables("表A").AddNew()
    For m As Integer = 0 To nms.Length - 1
        r(nms(m)) = Sheet(n,m).Value
    Next
    Dim fl As String = ProjectPath & "Attachments\\" & r("图例") & ".jpg"
    If Sheet(n,4).SaveImage(fl) Then \'如果照片保存成功
        r("图例") = fileSys.GetName(fl)
    End If
Next
Tables("表A").ResumeRedraw()


--  作者:yifan3429
--  发布时间:2018/1/19 16:14:00
--  
还是要不的   上实
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.zip


[此贴子已经被作者于2018/1/19 16:14:11编辑过]

--  作者:yifan3429
--  发布时间:2018/1/19 16:22:00
--  
顶下
--  作者:有点甜
--  发布时间:2018/1/19 16:34:00
--  
Dim Book As New XLS.Book(projectpath & "\\第1批.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("表A").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"序号","楼层","区域","图例","名称","长","宽","厚","材质说明","单位","数量","单价","合价元","备注"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As Row = Tables("表A").AddNew()
    For m As Integer = 0 To nms.Length - 1
        r(nms(m)) = Sheet(n,m).Value
    Next
    Dim fl As String = ProjectPath & "Attachments\\" & r("_Identify") & ".jpg"
    If Sheet(n,3).SaveImage(fl) Then \'如果照片保存成功
        r("图例") = fileSys.GetName(fl)
    End If
Next
Tables("表A").ResumeRedraw()

--  作者:yifan3429
--  发布时间:2018/1/19 16:57:00
--  
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2017.12.18.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
GDI+ 中发生一般性错误。


--  作者:有点甜
--  发布时间:2018/1/19 17:35:00
--  
在你的项目文件夹那里,新建一个叫做 【Attachments】 的文件夹,即可。