以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]select获得excel中一列数据怎么放到另一个表中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=112812)

--  作者:k740395636
--  发布时间:2018/1/3 13:04:00
--  [求助]select获得excel中一列数据怎么放到另一个表中
 用select获得sheet1的数据,放到了数组中,怎么才能再放到另一个表里

--  作者:有点甜
--  发布时间:2018/1/3 15:48:00
--  

1、你获得数据的代码怎么写的?贴出代码;

 

2、具体一点你的问题。


--  作者:k740395636
--  发布时间:2018/1/4 12:00:00
--  
需要把"网元名称"为"6011"且"端口"为"4(out)"的数据与"网元名称"为"6010","端口"为"1(In)"的数据行挑出来
然后判断"槽位id"末尾的数字最大的 out和in 的数据相减,主要就是1、不会粘贴,2、不知道怎么获得最大值那一行某单元格的值

Dim drs As List(of DataRow)=DataTables("sheet1").Select("[网元名称]=\'6011\'and[端口]=\'4(out)\'")
                                     
                                        ‘然后需要把符合条件的行放到 "sheet2"这个表格里,这里不会粘贴
‘——————————————

Dim i As Integer
Dim cnt As String
For i = 0 To 30    
    If Tables("sheet1").Rows(i)("网元名称") = Nothing  Then
        Exit For
    End If
    Dim str As String = Tables("sheet1").Rows(i)("槽位ID")
    str = str.Replace("-","0")           ‘槽位ID是一堆字符加最后的数字,所以把 - 换成 0 好比较大小
    output.show(str.SubString(str.Length - 2)) 
                              
                                                   ‘这里把最后两位数字提了出来,不会放回单元格
  ‘ ————————————————
    Dim cnt As String
    cnt = DataTables("sheet2").Compute("Max([网元名称])")  ‘这里判断到了最大值,但是不知道怎么返回最大值单元格位置,或者获得同一行的输入、输出光功率的值
    i = i + 1
Next

 ‘最后做比较相减,放到指定单元格



--  作者:k740395636
--  发布时间:2018/1/4 12:03:00
--  
恩,文件模板在这里
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点甜
--  发布时间:2018/1/4 12:18:00
--  

没看懂你代码表达的意思。

 

举例说明运算逻辑,比如取出什么值,做什么处理,然后添加到哪里?具体举一个实例说明。


--  作者:k740395636
--  发布时间:2018/1/5 15:30:00
--  
额。。第一个就是用
Dim drs As List(of DataRow)=DataTables("sheet1").Select("[字段1]=\'6011\'and[字段4]=\'4(out)\'")
取出了第一列为6011的行 ,然后怎么放到表2里

然后比如有这样三列三行数据在excel里,我该用哪两个函数才能判断出,第一列最大的数是多少(7),然后取出这一行的第四列的数字(3),与第

              第一列    第二列    第三列    第四列        一列数字最小的行的第四列的数字(8)相减。

     1           2          4            4          8

     2           6          5            5          7

     3           7          6            5          3

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

没看懂你逻辑,如果是根据末尾判读大小,这样判断

 

\'查询数据
Dim drs As List(of DataRow)=DataTables("sheet1").Select("[网元名称]=\'6011\' and [端口]=\'4(out)\'")
\'获取数据里面【id】末位最大的那一行
Dim max As Integer = 0
Dim pdr As DataRow
For Each dr As DataRow In drs
    Dim n = dr("槽位id").split("-")(1)
    If n > max Then
        pdr = dr
        max = n
    End If
Next
msgbox(pdr("槽位id") & pdr("输出光功率(dBm)"))


--  作者:k740395636
--  发布时间:2018/1/5 17:31:00
--  
 谢谢老师,找最大值我已经会了,我现在想知道怎么才能获得最大值那一行 旁边的值

              第一列    第二列    第三列    第四列        

     1           2          4            4          8

     2           6          5            5          7

     3           7          6            5          3

比如得出第一列大值是第三行的7,我现在怎么才能得到第三行第四列的值3,还有用过select语句得到的符合条件的行 怎么放到另一个表格里啊。

--  作者:有点甜
--  发布时间:2018/1/5 17:56:00
--  

看懂7楼代码,红色的就是你需要的

 

\'查询数据
Dim drs As List(of DataRow)=DataTables("sheet1").Select("[网元名称]=\'6011\' and [端口]=\'4(out)\'")
\'获取数据里面【id】末位最大的那一行
Dim max As Integer = 0
Dim pdr As DataRow
For Each dr As DataRow In drs
    Dim n = dr("槽位id").split("-")(1)
    If n > max Then
        pdr = dr
        max = n
    End If
Next
msgbox(pdr("槽位id") & pdr("输出光功率(dBm)"))

 

如果你需要赋值到另一个表,参考 http://www.foxtable.com/webhelp/scr/1533.htm

 


--  作者:k740395636
--  发布时间:2018/1/5 18:32:00
--  
 图片点击可在新窗口打开查看我看到了。。谢谢老师!!