前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI从Onedrive文件夹中获取多个文件,依然不使用网关

PowerBI从Onedrive文件夹中获取多个文件,依然不使用网关

作者头像
陈学谦
发布2020-05-07 16:55:04
6.5K0
发布2020-05-07 16:55:04
举报
文章被收录于专栏:学谦数据运营学谦数据运营

首先,数据文件放在onedrive的一个文件夹中:

我们按照常规思路,获取数据-从文件夹:

导航到所要选择的文件夹,加载:

整个过程的PQ底层逻辑很清楚,使用一个示例文件作为函数,然后用这个函数遍历文件夹中的所有文件,最终将结果合并到一张表中:

发布到云端,还是遇到相同的问题,需要安装并打开网关:

相同的疑问:onedrive文件夹本质上是网络位置,不该走gateway的,所以gateway完全多余。之所以必须通过gateway,原因就是导入的本质还是本地文件夹,并不是真实的onedrive网络位置。

解决思路:

仔细查看PowerQuery导入文件夹的整个过程用到的所有代码,其实你会发现,问题只有在源的位置:

很明显,后面的路径是绝对的本地路径。这正是Folder.Files能够识别的内容,而不能识别网络位置:

因此,接下来我们的任务就很清楚了,要准备两个内容:

1.获取onedrive文件夹的真实网络位置,将本地路径替换掉;

2.找出能识别onedrive真实网络位置的函数,将Folder.Files替换掉。

同样还是前一篇文章中的“打开文件-信息-打开文件位置-复制路径”:

只不过这次我们应该复制到账号名的位置(即根目录)即可。

https://xueqianpbi-my.sharepoint.cn/personal/admin_xueqianpbi_partner_onmschina_cn/

你也可以点击打开:

然后登录onedrive,截取网址的前半部分:

至于为什么不直接截取全部的路径,我们一会再说。

解决了路径问题,接下来,我们要选取替换Folder.Files的函数了。

由于onedrive的网址是SharePoint域名,所以我们搜一下与SharePoint相关的函数:

一共有三个,我们分别看一下微软文档中简介和从以上路径获取的信息:

1.SharePoint.Files

SharePoint.Files获取的是文件,根目录下和子文件夹下的所有文件:

2.SharePoint.Tables

SharePoint.Tables获取的是list item,并不是文件和文件夹,这些东西很明显不是我们想要的:

3.SharePoint.Contents

SharePoint.Contents获取的是根目录下的所有文件夹和文件:

Onedrive的全部文件都在documents里,可以导航获取文件夹中的内容:

很显然,这符合我们的要求。

由此,我们可以得出结论:

SharePoint.Contents是我们所需的函数。

解决了上面两个问题,我们就可以使用SharePoint.Contents函数和获取的链接进行操作了:

获取了Onedrive中的所有文件夹,接下来导航到自己想要的文件夹,然后合并文件即可:

这样就得到了合并的文件内容:

发布报告,我们再次到云端查看,网关是关闭状态的,编辑一下数据源权限,即可手动刷新和计划刷新了。

这个问题到这就基本解决完毕了。

以下解释一下几个细节问题:

1.为什么一定要使用根目录呢?原因是我在测试过程中,PQ出现的一个错误给的提示:

所以,要直接获取文件就填写实体的url,要获取文件夹就使用根目录url。

不过,直接使用根目录其实还有一个隐藏的好处。正如在这篇文章中说的:

从Power BI“最近使用的源”到盗梦空间的“植梦”

如果将所有的excel文件都放在onedrive中(强烈建议这么做),那么之后我们再想往模型中添加excel文件,只需要点击最近使用的源,再根据实际情况导航选择即可:

2.还有一个bug就是,有些时候,你按照以上步骤操作时,可能会得到一个空表:

测试了多次,世纪互联版的onedrive链接经常会出现这样的情况,不过国际版没出现过,也没有找到具体什么原因。后续抽空再研究研究。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档