ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4596|回复: 18

[求助] 如何转换网页图片数据,获取到EXCEL表中呢?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-2 21:28 | 显示全部楼层 |阅读模式
请问附件,目前 E-G行因原网站为图片故获取不到数据,请问可否修改代码,使原图片不同颜色图片转化成不同数值,(比如没有灯为0,有黄色灯为1,绿色灯值为2,灰色灯为3)而存到相应列里面呢?

求助各位大侠!

CDE.rar

14.86 KB, 下载次数: 16

CDE

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-3 10:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-9-3 11:09 | 显示全部楼层
代码在03版本,xp系统下运行正常。
  1. Sub test()
  2.     Dim url, html
  3.     url = "http://www.cde.org.cn/transparent.do?method=spxlList&tasktype=xb&nowYearM=2014-04&acceptid=&applyTypeCde=IND&isTimetag=0&pageMaxNumber=360&pagenum=1"
  4.     Set html = CreateObject("htmlfile")
  5.     n = 2
  6.     ar = [{"序号","受理号","进入中心时间","审评状态","药理毒理","临床","药学","备注"}]
  7.     Cells.ClearContents
  8.     Range("a2").Resize(1, UBound(ar)) = ar
  9.     With CreateObject("msxml2.xmlhttp")
  10.         .Open "get", url, False
  11.         .send
  12.         html.body.innerhtml = .responsetext
  13.         Set tb = html.all.tags("tr")
  14.         For i = 0 To tb.Length - 1
  15.             If tb(i).bgcolor = "#f5fafe" Then
  16.                 n = n + 1
  17.                 For j = 0 To 3
  18.                     Cells(n, j + 1) = tb(i).Cells(j).innertext
  19.                 Next
  20.                 Cells(n, 8) = tb(i).Cells(7).innertext
  21.                 For j = 4 To 6
  22.                     If InStr(tb(i).Cells(j).innerhtml, "lamp_shut.gif") > 0 Then
  23.                         Cells(n, j + 1) = "灯灭"
  24.                     ElseIf InStr(tb(i).Cells(j).innerhtml, "lamp_y.jpg") Then
  25.                         Cells(n, j + 1) = "黄灯"
  26.                     ElseIf InStr(tb(i).Cells(j).innerhtml, "lamp.gif") Then
  27.                         Cells(n, j + 1) = "绿灯"
  28.                     End If
  29.                 Next
  30.             Else
  31.             End If
  32.         Next
  33.     End With
  34. End Sub
复制代码

CDE.zip

32.11 KB, 下载次数: 48

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-3 15:33 | 显示全部楼层
非常感谢suwenkai , 如果想继续获取数据,即将B列受理号为关键词,从以下网址中的搜索结果,分别列于I列~R列,应该如何改代码呢??
http://app1.sfda.gov.cn/datasear ... olumnName=COLUMN464,COLUMN475&title=药品注册进度查询

企业名称        办理状态        状态开始时间        通知时间        标准品回执收到日        收费情况        费用收到日        检验报告收到日        药品批准文号        通知内容

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-3 17:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-9-3 18:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
试用了一下批量查询,可能会卡死。
  1. Sub test()
  2.     Dim url, html
  3.     url = "http://www.cde.org.cn/transparent.do?method=spxlList&tasktype=xb&nowYearM=2014-04&acceptid=&applyTypeCde=IND&isTimetag=0&pageMaxNumber=360&pagenum=1"
  4.     Set html = CreateObject("htmlfile")
  5.     n = 2
  6.     ar = [{"序号","受理号","进入中心时间","审评状态","药理毒理","临床","药学","备注","受理号","企业名称","办理状态","状态开始时间","通知时间","标准品回执收到日","收费情况","费用收到日","检验报告收到日","药品批准文号","通知内容"}]
  7.     Cells.ClearContents
  8.     Range("a2").Resize(1, UBound(ar)) = ar
  9.     With CreateObject("msxml2.xmlhttp")
  10.         .Open "get", url, False
  11.         .send
  12.         html.body.innerhtml = .responsetext
  13.         Set tb = html.all.tags("tr")
  14.         For i = 0 To tb.Length - 1
  15.             If tb(i).bgcolor = "#f5fafe" Then
  16.                 n = n + 1
  17.                 For j = 0 To 3
  18.                     Cells(n, j + 1) = tb(i).Cells(j).innertext
  19.                 Next
  20.                 Cells(n, 8) = tb(i).Cells(7).innertext
  21.                 For j = 4 To 6
  22.                     If InStr(tb(i).Cells(j).innerhtml, "lamp_shut.gif") > 0 Then
  23.                         Cells(n, j + 1) = "灯灭"
  24.                     ElseIf InStr(tb(i).Cells(j).innerhtml, "lamp_y.jpg") Then
  25.                         Cells(n, j + 1) = "黄灯"
  26.                     ElseIf InStr(tb(i).Cells(j).innerhtml, "lamp.gif") Then
  27.                         Cells(n, j + 1) = "绿灯"
  28.                     End If
  29.                 Next
  30.                 strNO = Cells(n, 2)
  31.                 ar = get_url(strNO)
  32.                 Cells(n, 9).Resize(1, 11) = ar
  33.             End If

  34.             
  35.         Next
  36.     End With
  37. End Sub
  38. Public Function get_url(strNO)
  39.     Dim url, html, postData, arr(1 To 12)
  40.     url = "http://app1.sfda.gov.cn/datasearch/schedule/search.jsp?"
  41.     url = url & "tableId=43&tableName=TABLE43&columnName=COLUMN464,COLUMN475"
  42.     url = url & "&title=%E8%8D%AF%E5%93%81%E6%B3%A8%E5%86%8C%E8%BF%9B%E5%BA%A6%E6%9F%A5%E8%AF%A2"
  43.     url = url & "&code=" & strNO

  44.     Set html = CreateObject("htmlfile")
  45.     With CreateObject("msxml2.xmlhttp")
  46.         .Open "get", url, False
  47.         .send
  48.         html.body.innerhtml = .responsetext
  49.         Set tb = html.all.tags("tr")
  50.         For i = 24 To 34
  51.             n = n + 1
  52.             arr(n) = tb(i).Cells(1).innertext
  53.         Next
  54.     End With
  55.     get_url = arr
  56. End Function
复制代码

CDE.zip

20 KB, 下载次数: 29

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-4 18:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢。运行时真是卡死了

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-4 19:18 | 显示全部楼层
非常感谢,明白 了,如果想再继续在T列~Y列加以下数据呢,即如果想继续以B列受理号为关键词,从以下网址中的搜索结果,分别列于T列~Y列,应该如何改代码呢??
http://www.cde.org.cn/news.do?me ... p;pageName=service#
万分感谢啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-5 16:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-9-6 06:07 | 显示全部楼层
suwenkai 发表于 2014-9-3 18:46
试用了一下批量查询,可能会卡死。

请教老师:可能会卡死,是指网站不能刷新过快、还是数据量太多?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 18:35 , Processed in 0.044907 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表