以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  生成列名数组  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=66996)

--  作者:ccbbdlzj
--  发布时间:2015/4/17 10:09:00
--  生成列名数组
求如何用代码生成表列名的数组?
--  作者:Bin
--  发布时间:2015/4/17 10:10:00
--  
tables("XX").cols 

本身就有

--  作者:ccbbdlzj
--  发布时间:2015/4/17 10:12:00
--  

想生成数组后用于导入数据。


--  作者:ccbbdlzj
--  发布时间:2015/4/17 10:16:00
--  
比如:姓名,证件号码,发证机关,是表A的列名称,想生成一个数组{“姓名”,“证件号码”,“发证机关”}。
--  作者:Bin
--  发布时间:2015/4/17 10:19:00
--  
这个是集合和数组基本一样的,你直接遍历它就可以了.没便要又重新生成一个数组
--  作者:ccbbdlzj
--  发布时间:2015/4/17 10:28:00
--  

Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
\'注意以下组中列名称的顺序,必须和Excel表中的列顺序一致
Dim
nms() As String = {"编号","产品","客户","雇员","单价","折扣","量","日期"}
\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim
r As Row = Tables("订单").AddNew()
    For
m As Integer = 0 To nms.Length - 1
        
r(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables(
"订单").ResumeRedraw

 

 

想根据订单表生成:数组{"编号","产品","客户","雇员","单价","折扣","量","日期"}


--  作者:Bin
--  发布时间:2015/4/17 10:29:00
--  
请认真看一下我前面的所有回复

For n As Integer = 1 To Sheet.Rows.Count -
    Dim 
r As Row = Tables("订单").AddNew()
    For 
m As Integer = 0 To Tables("订单").count - 1
         
r(nms(m)) = Sheet(n,m).Value
    Next
Next
Table

--  作者:狐狸爸爸
--  发布时间:2015/4/17 10:40:00
--  
如果Table的列顺序和excel中的列完全一直,不需要数组,直接:

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

但是最好手工定义数组,因为难免偶尔会调整Table的列位置。
[此贴子已经被作者于2015/4/17 10:51:22编辑过]

--  作者:ccbbdlzj
--  发布时间:2015/4/17 10:41:00
--  
谢了!