【发布时间】:2014-01-18 08:59:25
【问题描述】:
网站http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142 允许开发人员以如下格式从他们的网站中提取数据:
<evec_api version="2.0" method="marketstat_xml">
<marketstat>
<type id="34">
<buy>
<volume>22949619736</volume>
<avg>4.61</avg>
<max>4.76</max>
<min>1.72</min>
<stddev>0.64</stddev>
<median>4.66</median>
<percentile>4.75</percentile>
</buy>
<sell>
<volume>18253017309</volume>
<avg>6.01</avg>
<max>11.87</max>
<min>4.79</min>
<stddev>1.23</stddev>
<median>6.09</median>
<percentile>4.81</percentile>
</sell>
<all>
<volume>41214748156</volume>
<avg>5.23</avg>
<max>11.87</max>
<min>0.26</min>
<stddev>1.32</stddev>
<median>4.75</median>
<percentile>4.31</percentile>
</all>
</type>
</marketstat>
</evec_api>
如果我使用“Microsoft Excel 2010”->“数据”->“来自 Web”向导,那么所有内容都以易于使用的方式格式化,但我想使用“For Each”查询结果在 VBA 中循环。我尝试使用它来测试单个结果:
Sub URL_Static_Query()
Set QT = ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142", _
Destination:=Range("A1"))
With QT
.EnableEditing = False
.BackgroundQuery = True
.Refresh BackgroundQuery:=False
.SaveData = False
End With
End Sub
当我调用这个函数时,它的格式与使用向导的方式大不相同。这使得处理信息变得更加困难,尤其是在从同一张工作表上的多个不同网页进行查询时。
我的主要目标是只提取没有任何列或行标题的买卖结果;那些我可以手动输入的。任何帮助将不胜感激,谢谢!
【问题讨论】:
-
该 API 返回 XML 数据。是否考虑过使用 XML 对象来检索和处理数据,例如
MSXML2.DOMDocument60 -
你见过THIS吗?