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 可能有一定难度。
我的相关文章链接:
- Flask 实现 Rest API
- SAP 如何提供 RESTful Web 服务?
- SAP 如何提供 RESTful Web 服务(2) - ABAP 与 JSON
- SAP 如何提供 RESTful Web 服务(3) - Rest 路径处理
- SAP Hana 数据库编程接口 - Node.js
在本示例中,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:
Power Query 系列 (04) - 从 Web 导入数据相关推荐
- Power Query 系列 (01) - Power Query 介绍
Power Query 介绍 Power Query 是微软提供的工具,Excel 2013 版作为插件加载使用,从 Office 2016 版开始,Power Query 的功能集成到 Excel ...
- Power Query 系列 (12) - Power Query 结构化列应用案例
本篇数据处理来自一个实际处理数据的简化.下图中,假设左边是一个直观的 BOM 结构展示,数据在 Excel 中存储格式如中间部分所示:第一列为物料编码的级别,第二列为物料编码.数据处理任务:需要在 E ...
- Power Query 系列 (13) - 自定义函数
本篇博客介绍 Power Query 自定义函数的技巧,在 PQ 中计算个税. 以工资类所得应交个税为例,最新的个税起征点为 5000 并按下表的级次进行缴税(假设没有其它扣除项). 对照税率表,我们 ...
- Power Query 系列 (11) - 函数基础
函数是 Power Query (PQ) 解决问题的核心.之前的博客文章我多层刻意在完成查询的步骤之后显示高级编辑器中 M 语言代码,想必大家已经对 M 的函数有了初步印象,尽管不一定很关注.本篇介绍 ...
- ElasticSearch高级 (Query DSL查询 bulk批量操作 导入数据 各种查询 实战技巧-优化比重 全量与增量数据同步)
ElasticSearch高级 01-Query DSL(Domain Specific Language) 1 查询上下文 2 相关度评分:_score 3 元数据:_source 4 Query ...
- BI神器Power Query(4)-- PQ导入动态名称定义的表格
使用定义名称的方式指定数据区域,数据增减后,这个名称不能自动更新引用范围,如果需要实现类似于表格的自适应扩展,那么就需要使用动态名称.使用Offset和Counta函数如下图所示可以定义动态名称,这个 ...
- 【数据架构系列-04】趁着国家数据局来了,一起聊聊政府数据开放,未来道阻且长
这几天朋友圈.订阅号.新闻推送频繁出来的消息是国家要成立数据局,"3月7日下午,根据国务院关于提请审议国务院机构改革方案的议案,组建国家数据局,一个全新的机构即将诞生".可见国家是 ...
- 在power query中连接mysql_PowerQuery连接常用数据库函数
讲师介绍: 徐鹏老师是微软MVP,先后在宏基商业软件部门,微软先后工作,为诸多台企制造业客户提供基础架构的咨询.优化.培训等等服务.在微软为广东.福建两省的合作伙伴提供技术顾问咨询服务及客户辅助服务. ...
- 利用Excel Power Query获取基金历史净值、估值和日增长率等信息
利用Excel Power Query获取基金历史净值.估值和日增长率等信息 先展示结果 Excel Power Query说明 基金数据源 数据查询API接口分析 Excel query 查询获取基 ...
- 更改office365Excel导入外部数据默认使用power query
问题描述 使用office365后,Excel更新到了最新版.在导入外部数据的时候,发现默认使用了power query导入数据,对于我这种小白来说,实在不太友好.毕竟我只是想将文本数据进行分栏,使其 ...
最新文章
- Windows下安装Mongodb SpringBoot集成MongoDB和Redis多数据源
- base64开源库介绍及使用
- C语言指针(个人的认识)
- 首次公开:京东数科强一致、高性能分布式事务中间件 JDTX
- python函数必背知识点_必背函数——python学习第四次总结
- 手把手玩转win8开发系列课程(2)
- CSS3弹性伸缩布局(一)——box布局
- MVC初学 - The type or namespace name 'DbContext' could not be found
- 深入理解 Cilium 的 eBPF(XDP)收发包路径:数据包在Linux网络协议栈中的路径
- java 内部类调用_Java内部类使用总结
- 联想电脑摄像头亮灯却无法正常显示解决
- python计算时差
- 火车采集器html规则,火车头采集器代码过滤方法
- 洛谷 P4147 玉蟾宫【悬线法/单调栈】
- 【答学员问】有没有三十岁以上大龄转行的学员,我想跟他聊聊?
- 今日头条给我发工资744.53元 坚持原创终于有了回报
- 关于渲染帧率(FPS)的问题
- 保险入门,我不推荐买保险
- 跟着开源项目学因果推断——FixedEffectModel 固定效应模型(十七)
- 【Jquery】jquery-qrcode把域名地址生成二维码图片,扫码即可访问
热门文章
- XLINUX-FPGA开发-基础篇-数电-门电路
- Cisco Packet Tracer思科模拟器中路由器的TELNET配置
- html静态页面作业——绿色特产商城购物网(11页) HTML+CSS+JavaScript 网页设计作业,网页制作作业, 学生网页作业, 网页作业成品, 网页作业模板
- Android Studio查看MD5与SHA1
- Book-Manager 图书管理系统(基于SpringBoot、MyBatis)
- SSM+Bootstrap+MYSQL演唱会网上订票系统
- C语言 Linux网络编程(C/S架构) 在线词典
- linux系统下安装oracle客户端
- 手机照片局部放大镜_拼音输入法哪个最好?百度手机输入法——最受年轻人喜爱...
- 几种比较好用的连接PostgreSQL的客户端