【问题标题】:Download a Table with Excel使用 Excel 下载表格
【发布时间】:2015-01-08 03:14:11
【问题描述】:

我想下载本页中关于 Libor 利率的表格:

http://online.wsj.com/mdc/public/page/2_3020-libor.html(具体来说是美元的那个)

通过使用来自网络的数据/导入,如果我在按导入后选择表格,它不会出现表格,但如果我导入整个页面,则会出现该表格

有没有办法,使用VBA,我可以在哪里获得该表?

【问题讨论】:

    标签: excel import web-scraping vba


    【解决方案1】:

    作为 VBA 的替代方案,您可以下载并安装名为 Power Query 的免费 Microsoft Add-In for Excel。安装 Power Query 后,步骤如下:

    • 单击 Power Query 功能区
    • 点击“来自网络”图标
    • 粘贴网站的网址
    • 在侧栏上,选择 Table0 并编辑查询
    • 您将看到一些已应用的转换步骤。添加以下转换:
    • 删除顶部行(仅 1 行)
    • 将第一行设置为标题
    • 删除底部行(27 行)
    • 单击“关闭并加载”将转换后的数据写入 Excel 文件中的表格。

    现在您只需要在网站有新号码时刷新数据连接。

    屏幕截图包含带有 Power Query 功能区的 Excel 文件和背景中的结果表。顶部的窗口是 Power Query 界面。转换步骤列在右侧面板中。

    每个转换步骤都以一种称为“M”的语言记录。在 Power Query 中,您可以单击查看 > 高级编辑器来查看和更改 M 代码。它是一种非常强大的语言,其语法与 Excel 公式或 VBA 完全不同。我在这里提到它只是为了让您知道,除了单击功能区上的图标之外,还可以自定义转换。生成的代码是:

    let
        Source = Web.Page(Web.Contents("http://online.wsj.com/mdc/public/page/2_3020-libor.html")),
        Data0 = Source{0}[Data],
        #"Changed Type" = Table.TransformColumnTypes(Data0,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}}),
        #"Removed Top Rows" = Table.Skip(#"Changed Type",1),
        #"First Row as Header" = Table.PromoteHeaders(#"Removed Top Rows"),
        #"Removed Bottom Rows" = Table.RemoveLastN(#"First Row as Header",27)
    in
        #"Removed Bottom Rows"
    

    【讨论】:

    • @pnuts 不,它对我也不起作用。我没有仔细研究细节。表格在网络上越来越少见。开发人员正在使用基于动态 javascript 的方式来提供内容。从 Excel 调用页面时,javascript 将不会运行。不确定 VBA 是否能够加载数据。我不熟悉那种 VBA。
    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 2017-07-14
    • 2014-04-08
    • 2021-11-16
    • 2015-07-18
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多