Power Query 系列 (04) - 从 Web 导入数据

Power Query (PQ) 从 Web 导入数据,主要有如下几种应用:

  • 数据包含表格格式,导入表格中的数据
  • Restful API 数据导入
  • OData 格式数据导入

下面就介绍以上三种数据格式的导入方法。

导入页面中含有 table 的数据

因为网络页面具有很大不确定性,比如数据变化,或者页面过几天就不见了,所以无法保证我所选取的页面在您查看的时候一定还在。但基本方法类似,您也可以找到一个类似的页面来操作。

这里给出的一个页面是中国 211 大学的一个清单,网址为 https://www.dxsbb.com/news/2799.html,页面含有两个表格,如下:


现在我们将页面的 211 大学数据导入到 PQ Query 。切换到【数据】选项卡,通过【数据获取】- 【自其他源】- 【自网站】,打开连接界面:

输入上面的网址,点击确定按钮:


在接下来导航器界面中,左边部分已经出现了两个 table:table0 和 table1,右边预览区默认在表视图。可以点击 table0 或者 table1,右边预览区在表视图中会将解析到的数据预览。


点击加载按钮,将数据加载到 Excel 工作表,导入的工作完成。

导入 Restful API 数据

下面演示提供 Restful 服务的后端从 url 导入 json 格式数据的方法,本示例使用 SAP 系统提供的 Restful 服务。

之前曾经用不同语言实现过 Restful Service, 也在博客中记录了实现的过程。感兴趣的读者可以参考我的文章,或者网络上其他文章。如果不是程序开发人员的话,使用其他语言实现 Restful API 可能有一定难度。

在本示例中,Restful 服务返回的 json 格式数据如下:

[
    {
        "mandt": "001",
        "empid": "1",
        "empname": "Stone Wang",
        "empaddr": "Wuhan"
    },
    {
        "mandt": "001",
        "empid": "2",
        "empname": "Alice Brown",
        "empaddr": "England"
    },
    {
        "mandt": "001",
        "empid": "3",
        "empname": "张三",
        "empaddr": "武汉"
    },
    {
        "mandt": "001",
        "empid": "4",
        "empname": "李四",
        "empaddr": "Wuhan"
    },
    {
        "mandt": "001",
        "empid": "5",
        "empname": "王五",
        "empaddr": "武汉经开"
    },
    {
        "mandt": "001",
        "empid": "6",
        "empname": "王二",
        "empaddr": "北京"
    }
]

切换到【数据】选项卡,通过【数据获取】- 【自其他源】- 【自网站】,打开连接界面。在页面中输入 url 路径:


一般来说,这种提供数据服务的 url 是需要校验用户是否是合法用户(authentication),在 SAP 提供的服务中,使用的是基本认证方式(basic authentication),所以接下来,进入认证界面,选择基本,输入登录的用户名和密码:


后续的操作与上一篇文章提到的导入 json 格式数据类似。本示例返回 json 格式是一个 json 数组,数组每一项是一个 json 对象,PQ 导入的时候,将数组对应到 List,将 json 对象对应到 Record:


将 List 转换成 Table:

点击 Column 右边的图标,进行展开操作:


展开的时候,不使用原始列名作为前缀:


点击确定,数据导入到 PQ:

主页中,点击关闭并上载,数据上载至 Excel sheet。

导入 OData 格式数据

OData: 开放数据协议(Open Data Protocol,缩写 OData)是一种描述如何创建和访问 Restful 服务的 OASIS 标准。该标准由微软发起,前三个版本1.0、2.0、3.0 都是微软开放标准。第四个版本4.0 于 2014 年 3 月 17 日在 OASIS 投票通过成为开放工业标准。

OData 是用来查询和更新数据的一种 Web协议,提供了把存在于应用程序中的数据暴露出来的方式。OData 运用且构建于很多 Web 技术之上,比如 HTTP、Atom Publishing Protocol(AtomPub)和 JSON,提供了从各种应用程序、服务和存储库中访问信息的能力。OData 被用来从各种数据源中暴露和访问信息, 这些数据源包括但不限于:关系数据库、文件系统、内容管理系统和传统 Web 站点。

Restful 只是一种设计 Web 服务的思想,不是一种标准化的协议。正由于缺乏标准化,从而导致各家公布的 Restful API 统一通用方面的欠缺。OData 就是为弥补这种欠缺而被提出来的标准协议。

http://services.odata.org/ 这个站点提供了 OData data service 的示例,并且可以对 OData 数据进行 CRUD 操作。我们在浏览器中这个页面,点击 Browse the Read-Only Northwind Service 超链接,进入 https://services.odata.org/V3/Northwind/Northwind.svc/ 页面。这个页面在浏览器中的显示如下:


接下来在 PQ 中导入 OData 格式数据。切换到【数据】选项卡,通过 【获取数据】- 【自其他源】- 【从 OData 源】打开连接界面:

在 URL 中输入服务的根路径,点击确定按钮:

在接下来的导航器界面中,左边导航区已经可以看到有哪些数据了,比如 Customers, Products 等,选择一个或者多个数据导入 PQ 即可。这里我们选择 Categories:


点击加载按钮,数据加载到 PQ:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354