Foxtable(狐表)用户栏目专家坐堂 → 【已解决】(获取网页表格内容保存狐表、获取字符串组内指定位置的字符串)[求助]我想获取表格内容到狐表表A内,怎么写?


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

主题:【已解决】(获取网页表格内容保存狐表、获取字符串组内指定位置的字符串)[求助]我想获取表格内容到狐表表A内,怎么写?

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


加好友 发短信
等级:六尾狐 帖子:1486 积分:10582 威望:0 精华:0 注册:2018/10/16 11:42:00
【已解决】(获取网页表格内容保存狐表、获取字符串组内指定位置的字符串)[求助]我想获取表格内容到狐表表A内,怎么写?  发帖心情 Post By:2019/3/20 12:34:00 [只看该作者]

[求助]我想获取表格内容到狐表表A内,怎么写?

这代码没看懂。

 

Dim web As System.Windows.Forms.WebBrowser = e.form.controls("webbrowser1").Basecontrol
Dim elems As object = web.Document.GetElementsByTagName("div")
Dim ls As new List(of String)
For Each elem As object In elems
    If elem.getattribute("classname") = "cell" Then
        ls.add(elem.innerText)
    End If
Next

msgbox(ls.count)
If ls.count >= 10 Then
    
    Dim dr As Row = Tables("表A").AddNew()
    dr("第一列")=ls(0)
    dr("第二列")=ls(1)
    dr("第三列")=ls(2)
    dr("第四列")=ls(3)
End If

 

网页如下:



此主题相关图片如下:获取.jpg
按此在新窗口浏览图片

 

<div class="z_table">

<table>

<thead>

<tr>

<th width="140">订单编号</th><th width="112">订单时间</th><th width="120">发件人(电话)</th><th width="10%">发件人地址</th><th width="10%">收件人(电话)</th><th width="10%">收件人地址</th><th width="undefined">揽件人</th><th width="undefined">收件网点</th><th width="undefined">订单来源</th><th width="undefined">详细来源</th><th width="undefined">大头笔</th><th width="undefined">二段码</th><th width="undefined">三段码</th><th width="undefined">集包地</th><th width="undefined">派件网点</th></tr>

</thead>

<tbody>

<tr>

<td align="center">19031****755094102</td>

<td align="center">2019-03-19 09:05</td>

<td align="center" class="protection-temple">福佳 185****5039</td>

<td align="center" class="protection-temple">湖南省长沙市望城区********流园B7库</td>

<td id="receivePhone" align="center" class="protection-temple">张维英--180****6191<!--<br--> <button class="btn_sms layui-btn layui-btn-warm layui-btn-xs">发送短信</button> </td><td align="center" class="protection-temple">四川省巴中市恩阳区************茶坝街道</td>

<td align="center"></td>

<td align="center">长沙市场部</td><td align="center">电子面单-菜鸟平台</td>

<td align="center"></td><td align="center">620- 南充中转站</td><td align="center">59-28</td>

<td align="center">05</td>

<td align="center">南充转</td><td align="center"></td></tr><tr>

<td align="center">19031****793504103</td><td align="center">2019-03-19 10:51</td><td align="center" class="protection-temple">王亚 0</td><td align="center" class="protection-temple">江苏省徐州市铜山区****************超市院内</td><td id="receivePhone" align="center" class="protection-temple">张维英--180****6191<!--<br--> <button class="btn_sms layui-btn layui-btn-warm layui-btn-xs">发送短信</button> </td><td align="center" class="protection-temple">四川省巴中市恩阳区************坝街道</td><td align="center"></td><td align="center"></td><td align="center">淘宝线下订单</td><td align="center"></td><td align="center"></td><td align="center"></td><td align="center"></td><td align="center">0</td><td align="center"></td></tr></tbody></table></div>

[此贴子已经被作者于2019/3/21 14:48:40编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 12:42:00 [只看该作者]


 回到顶部
客人(175.10.*.*)
  3楼


  发帖心情 Post By:2019/3/20 13:08:00 [只看该作者]

完全没看懂,不知道他是怎么取数据的

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


加好友 发短信
等级:六尾狐 帖子:1486 积分:10582 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/3/20 14:38:00 [只看该作者]

完全没看懂,不知道他是怎么取数据的
 web.Document.GetElementById("list_elem").
list_elem这是什么,他网页里没找到

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 14:42:00 [只看该作者]

那你就改成

 

Dim elems As object = web.Document.GetElementsByTagName("table")

msgbox(elems.count)

msgbox(elems(0).innerHTML)

[此贴子已经被作者于2019/3/20 14:41:41编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1486 积分:10582 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/3/20 16:24:00 [只看该作者]

可以执行。

但是我对解析不太会
他这解析我也没看懂
    For Each tdelem As object In tdelems
        i = i + 1
        Tables("长江现货").Current(Cols(i)) = tdelem.Innertext
        Tables("长江现货").Current("录入日期") = Date.Today
        If i > 2 Then '必须要当价格区间列已经有值,才能执行以下代码
            Dim s As String = Tables("长江现货").Current("价格区间")
            Dim s2 As String = s.SubString(5,1) '价格区间中间的横杠有点特殊,不是键盘上的短横杠.所以用Asc()函数和Chr(-24150))配合来引用.
            Dim k As String = s.IndexOf(Chr(-24150)) '用Asc(s2)函数获得-的字符编码是-24150
            Tables("长江现货").Current("最高价") = s.SubString(k+1)
            Tables("长江现货").Current("最低价") = s.Remove(k)
        End If
        
        
    Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 17:10:00 [只看该作者]

 

你只需要循环每一个tr和td就可以啊,不需要照抄人家的代码啊,你弹出各个td的值看看;

 

不会做,请把你的网页,另存一下。单独做一个项目,引用这个网页。发上来测试。

 

 


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


加好友 发短信
等级:六尾狐 帖子:1486 积分:10582 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/3/20 17:40:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:desktop.zip

网页如下

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


加好友 发短信
等级:六尾狐 帖子:1486 积分:10582 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/3/20 17:50:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自定义用户管理之二.table

是这样的,麻烦看下,我也不会循环tr、td。复杂一点就不会了

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 17:52:00 [只看该作者]

Dim web As System.Windows.Forms.WebBrowser = forms("窗口1").controls("webbrowser1").Basecontrol
Dim elems As object = web.Document.GetElementsByTagName("table")
'msgbox(elems(0).Innertext)
Dim trs = elems(0).GetElementsByTagName("tr")
For i As Integer = 1 To trs.count-1
    Dim tr = trs(i)
    Dim tds = tr.GetElementsByTagName("td")
    msgbox(tds(0).Innertext)
    msgbox(tds(1).Innertext)
    msgbox(tds(2).Innertext)
Next

 


 回到顶部
总数 16 1 2 下一页