我花了几个小时在网上搜索与VBA调用excel网络数据有关的事情,没有提供如何操作的教程,只有复杂的例子与我想做的事情无关。
我想从.html或.xml站点提取数据,无关紧要,通过Excel找到该数据中的特定点。我可以找到具体的点,但不知道如何获取数据或滚动多行。我在mIRC(类似C代码)中做过这样的事情。
http://eve-central.com/home/quicklook.html?typeid=438
http://api.eve-central.com/api/quicklook?typeid=438
这是两个例子,使用我想要检索的大致相同的数据。它更具体,最多有100个不同的值。
我想要了解如何做,不给出代码来做,或者如果你必须深入解释每个部分的评论请。
编辑:我只是在这里说我不希望你链接我一些类似的随机代码,并希望我修改它没有解释。不希望有人为Excel撰写完整的互联网功能指南。
由于 尼克
编辑:我会尝试从另一个角度再次解释它。我玩了一款名为EVE Online的游戏,网上有很多“市场”数据库,允许以这种形式访问程序,以便提取某些商品价格的数据。我想在Excel文档中做到这一点,然后显然将它们列在隐藏的工作表中。我不想使用辅助程序,我知道它完全可以在Excel中使用。
答案 0 :(得分:1)
这是一个快速而粗略的答案,因为你的行为听起来有点狡猾(见评论),但从我对Excel的理解,我认为最好的办法是使用ODBC驱动程序并直接连接MS Access(然后导出到excel)到网站用来接收所有数据的同一个数据库。
这意味着您将需要: 1.数据库的用户名和密码。 2.网站用于检索数据的关联sql查询。 (可能包括连接,功能等。)
否则,您必须通过“front”,获取它,并且您需要为每个页面的部分编写自己的html解析器以生成xml文件,以便excel可以读取最终内容表数据干净。(适用于excel 2007及以上版本。) 这样做还可以让您能够在xml架构中推断列的“数据类型”,例如int,char,bigint等。但是,这可能只需要在控制台C#/ C ++ / java之类的东西中完成,而不是excel本身,因为我非常确定excel没有一个功能可以让你自己编写'HTML to XML'解析一个它一无所知的网站。
希望这会有所帮助..
答案 1 :(得分:1)
请看这里 - How can I send an HTTP POST request to a server from Excel using VBA?和getHTTP with (excel) VBA?
处理代码部分。有关所提供链接的说明,请参阅有关WinHttp.WinHttpRequest.5.1
和MSXML2.ServerXMLHTTP
的MSDN文档,以更清楚地了解这些库的用途。我还建议阅读一些关于在VBA中使用COM对象的内容
我想要如何做到这一点, 没有给出代码,或者如果你 必须用评论解释每个部分 请深入了解。
不要太粗鲁,但这听起来像是你想让别人教你如何编码。我不认为人们可以简单地教代码。
修改:
我误解了你的问题,如果我错了就纠正我,但问题的关键在于I can find specific points but don't know how to get the data or scroll through multiple lines.
使用http://msdn.microsoft.com/en-us/library/aa163921(office.10).aspx,您可能需要将所有结果节点都放入XML对象中。然后你可以循环遍历结果集(我认为这是你的滚动意思)。
答案 2 :(得分:1)
1)复制指向您想要的价格数据的链接。即
http://api.eve-central.com/api/marketstat?typeid=34&typeid=35®ionlimit=10000002
2)在excel中,选择要将数据导入的位置。最好是空白纸。
3)数据 - >导入外部数据 - >新的Web查询。
4)将链接粘贴到地址栏中。您可以稍后编辑链接以添加或减去类型。
5)按“执行”按钮。
6)选择一个黄色箭头框。我在evec_api版本的正上方选择了这个框。
7)按确定按钮将数据导入到您在步骤2中选择的工作表。
现在您可以右键单击数据“刷新数据”。
使用任何查找公式来读取此数据到表格其余部分的价格。
您可以通过右键单击数据的任何部分并选择“编辑查询...”来更改Web查询的地址。
希望这能让你朝着正确的方向前进。这适用于Excel版本2002(XP)和2003. Excel 2007对XML查询更友好。