【问题标题】:Retrieve data from the web using Excel [closed]使用 Excel 从 Web 检索数据 [关闭]
【发布时间】:2012-07-13 02:08:36
【问题描述】:

我花了几个小时在网上搜索与 VBA 在 Excel 中从 Web 调用数据有关的任何事情,但没有提供有关如何做到这一点的教程,只有与我想做的事情无关的复杂示例。

我想通过 Excel 从 .html 或 .xml 站点提取数据,没关系,并在该数据中查找特定点。我可以找到具体的点,但不知道如何获取数据或滚动多行。我已经在 mIRC(某种 C 代码)中完成了这一类的事情。

http://eve-central.com/home/quicklook.html?typeid=438
http://api.eve-central.com/api/quicklook?typeid=438
这是两个例子,使用了我想要检索的大致相同的数据。最多有 100 个左右的不同值会更加具体。

我想教你怎么做,没有给出代码,或者如果你必须用 cmets 深入解释每个部分。
编辑:我只是在这里说,我不希望你链接我一些执行类似操作的随机代码,并希望我在没有解释的情况下修改它。不希望有人为 Excel 编写完整的 Internet 功能指南。

谢谢 尼克

编辑:我会尝试以不同的方式再次解释它。我玩了一款名为 EVE Online 的游戏,并且有很多在线“市场”数据库允许以这种形式访问,以便程序提取某些商品价格的数据。我几乎想在 Excel 文档中执行此操作,然后显然将它们列在隐藏的工作表或其他内容中。我不想使用辅助程序,我知道这完全可以在 Excel 中实现。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    看看这里 - How can I send an HTTP POST request to a server from Excel using VBA?getHTTP with (excel) VBA?

    处理代码部分。有关所提供链接的说明,请参阅有关 WinHttp.WinHttpRequest.5.1MSXML2.ServerXMLHTTP 的 MSDN 文档,以更清楚地了解这些库的用途。我还建议阅读一些关于在 VBA 中使用 COM 对象的信息

    我想被教如何做到这一点, 没有给出执行此操作的代码,或者如果您 必须用 cmets 解释每个部分 请深入。

    不要粗鲁,但这听起来像是您希望有人教您如何编码。我不认为一个人可以简单地教代码。

    编辑:

    我误解了你的问题,如果我错了,请纠正我,但你问题的症结围绕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 对象中。然后,您可能需要遍历结果集(我认为这就是您所说的滚动)。

    相关问题:How to parse XML using vba

    【讨论】:

      【解决方案2】:

      这是一个快速而粗略的答案,因为你的所作所为听起来有点狡猾(见评论),但根据我对 Excel 的理解,我认为你最好的选择是使用 ODBC 驱动程序并直接与 MS Access 连接(然后导出到 excel) 到网站用来接收所有数据的同一数据库。

      这意味着您需要: 1.数据库的用户名和密码。 2. 网站用于检索数据的相关 sql 查询。 (可能包括连接、函数等)

      否则,你将不得不通过“前面”,你将需要为每个页面的部分编写自己的html解析器以生成一个xml文件,以便excel可以读取最终的目录表数据干净。(对于 excel 2007 及更高版本。) 这样做还可以让您在 xml 模式中推断列的“数据类型”,例如 int、char、bigint 等。但是,是的,这可能只需要在控制台 C#/C++/java 之类的东西中完成,而不是在 excel 本身中,因为我很确定 excel 没有让您编写自己的“HTML 到 XML”的功能它一无所知的网站的解析器。

      希望这会有所帮助..

      【讨论】:

      • 只是一个想法,您是否尝试重新创建没有权限的数据库?
      • Micorsoft XML 库可用于解析 XML,并可根据您安装的版本添加对宏项目的引用。
      • 它可以在网络上免费访问,s_rathbone。我只是想在 Excel 中将其解析为更易于阅读的版本,并且他们将数据库设计为可以通过从第二页下载的程序和数据轻松访问。
      【解决方案3】:

      1) 复制指向您想要的价格数据的链接。即

      http://api.eve-central.com/api/marketstat?typeid=34&typeid=35&regionlimit=10000002

      2) 在 excel 中选择要导入数据的位置。最好是一张白纸。

      3) 数据 -> 导入外部数据 -> 新建 Web 查询。

      4) 将链接粘贴到地址栏中。您可以稍后编辑链接以添加或减去 typeid。

      5) 按“开始”按钮。

      6) 选择黄色箭头框之一。我选择了 evec_api 版本正上方的框。

      7) 按确定按钮将数据导入您在步骤 2 中选择的工作表。

      现在您可以右键单击数据“刷新数据”。

      使用任何查找公式将价格从该数据读取到工作表的其余部分。

      您可以通过右键单击数据的任何部分并选择“编辑查询...”来更改 Web 查询的地址

      希望这能让你朝着正确的方向前进。这将适用于 Excel 版本 2002(XP) 和 2003。Excel 2007 对 XML 查询更友好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-30
        相关资源
        最近更新 更多