Foxtable(狐表)用户栏目专家坐堂 → 生成列名数组


  共有3274人关注过本帖树形打印复制链接

主题:生成列名数组

帅哥哟,离线,有人找我吗?
ccbbdlzj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1140 威望:0 精华:0 注册:2013/9/22 15:59:00
生成列名数组  发帖心情 Post By:2015/4/17 10:09:00 [只看该作者]

求如何用代码生成表列名的数组?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/17 10:10:00 [只看该作者]

tables("XX").cols 

本身就有

 回到顶部
帅哥哟,离线,有人找我吗?
ccbbdlzj
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1140 威望:0 精华:0 注册:2013/9/22 15:59:00
  发帖心情 Post By:2015/4/17 10:12:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
ccbbdlzj
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1140 威望:0 精华:0 注册:2013/9/22 15:59:00
  发帖心情 Post By:2015/4/17 10:16:00 [只看该作者]

比如:姓名,证件号码,发证机关,是表A的列名称,想生成一个数组{“姓名”,“证件号码”,“发证机关”}。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/17 10:19:00 [只看该作者]

这个是集合和数组基本一样的,你直接遍历它就可以了.没便要又重新生成一个数组

 回到顶部
帅哥哟,离线,有人找我吗?
ccbbdlzj
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1140 威望:0 精华:0 注册:2013/9/22 15:59:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1140 威望:0 精华:0 注册:2013/9/22 15:59:00
  发帖心情 Post By:2015/4/17 10:41:00 [只看该作者]

谢了!

 回到顶部