导入 SharePoint 和 OneDrive for Business 文件

Power Query 提供了访问 SharePoint 或 OneDrive for Business 上托管文件的一系列方法。

浏览文件

注意

目前,只能在 PowerApps 的 Power Query Online 中浏览已验证身份用户的 OneDrive for Business 文件。

警告

该功能要求浏览器支持使用第三方 cookie。 如果浏览器已阻止第三方 Cookie,将显示“浏览”对话框,但该对话框将完全为空白,没有关闭对话框的选项。

使用以下任何连接器在 PowerApps 中创建数据流时,Power Query 会在文件路径或 URL 文本框旁边提供“浏览 OneDrive”按钮:

Excel 连接器的“连接设置”窗口中的“浏览 OneDrive...”按钮。

选择此按钮后,系统会提示你完成身份验证。 完成此过程后,将显示一个新窗口,其中包含已验证身份用户的 OneDrive for Business 中的所有文件。

用于浏览经过身份验证用户的 OneDrive for Business 中的文件的新窗口。

可以选择所选的文件,然后选择“打开”按钮。 选择“打开”后,将返回到初始连接设置页面,你将看到“文件路径或 URL”文本框中现在包含了从 OneDrive for Business 中选择的文件的确切 URL。

“连接设置”窗口,其中包含 OneDrive for Business 上托管的所选文件的 url。

可以选择窗口右下角的“下一步”按钮,继续处理并获取数据。

使用文件 URL 从 Web 连接器

  1. 使用浏览器导航到 OneDrive for Business 位置。 右键单击要使用的文件,然后选择“在 Excel 中打开”。

    注意

    浏览器界面可能看起来不完全如下图所示。 有许多方法可以在 OneDrive for Business 浏览器界面中选择“在 Excel 中打开”文件。 可使用任何允许你在 Excel 中打开文件的选项。

    浏览器中 OneDrive 的屏幕截图,其中显示“在 Excel 中打开”选项。

  2. 在 Excel 中,选择“文件>信息”,然后选择“复制路径”按钮。

    “信息”菜单的屏幕截图,其中显示“复制路径”按钮选项。

若要使用刚在 Power Query 中复制的链接,请执行以下步骤:

  1. 选择获取数据>Web

    Power BI Desktop 中“获取数据”功能区的屏幕截图,其中显示了“Web”选项。

  2. 在“从 Web”对话框中,选择“基本”选项并将链接粘贴到 URL 中。

  3. 删除链接末尾的 ?web=1 字符串,以便 Power Query 可以正确导航到文件,然后选择“确定”。

    “从 Web”对话框的屏幕截图,其中显示如何从“URL”字段中删除字符串。

  4. 如果 Power Query 提示输入凭据,请选择 Windows(适用于本地 SharePoint 网站)或组织帐户(适用于 Microsoft 365 或 OneDrive for Business 网站)。 然后选择“连接”。

    Power BI Desktop 凭据提示的屏幕截图,其中突出显示“Windows”或“机构帐户”选项。

    注意

    处理 OneDrive for Home 上托管的文件时,要连接到的文件必须是公开可用的。 设置此连接的身份验证方法时,请选择“匿名”选项。

出现“导航器”对话框时,可以从 Excel 工作簿中找到的表、工作表和区域列表中进行选择。 此处,可以像使用任何其他 Excel 文件一样使用 OneDrive for Business 文件。 你可以创建报表并将其用于数据集,就像处理任何其他数据源一样。

注意

若要将 OneDrive for Business 文件用作 Power BI 服务中的数据源,并为该文件启用“服务刷新”,请确保在配置刷新设置时选择 OAuth2 作为身份验证方法 。 否则,当尝试连接或刷新时,可能会遇到错误(例如,无法更新数据源凭据)。 选择 OAuth2 作为身份验证方法可纠正该凭据错误。

SharePoint 文件夹连接器

可以在 SharePoint 文件夹一文中阅读有关如何连接 SharePoint 网站托管文件的详细分步指南。

成功建立连接后,系统会提示你进行表预览,其中显示了 SharePoint 网站中的文件。 选择窗口右下方的“转换数据”按钮。

使用 SharePoint 文件夹连接器连接到 SharePoint 网站后显示的表预览,其中显示在 SharePoint 网站中找到的文件。

选择“转换数据”按钮,可查看名为“文件系统视图”的数据。 此表中的每一行都代表在 SharePoint 网站中找到的文件。

选择“转换数据”按钮后,SharePoint 网站中的文件表预览。

该表具有名为“内容”的列,其中包含二进制格式的文件。 “内容”列中的值的颜色不同于表其他列中的其余值,表示这些值是可选的。

通过在“内容”列中选择“二进制”值,Power Query 会自动在查询中添加一系列步骤,以导航到文件并尽可能解释其内容。

例如,从上图中显示的表中,可以选择“名称”字段值为 02-February.csv 的第二行。 Power Query 将自动创建一系列步骤,以导航并将文件内容解释为 CSV 文件。

CSV 文件的内容,Power Query 为此文件自动解释的名称为 02-February.csv,如“已应用的步骤”部分所示。

注意

在导航到所选文件之前,可以通过应用筛选器、排序和其他转换与表进行交互。 完成这些转换后,选择要查看的“二进制”值。

OneDrive for Business 体验

SharePoint 文件夹连接器及其体验也适用于 OneDrive for Business 上托管的文件。 但是,需要使用的 URL 与要用于 SharePoint 网站的 URL不同。 若要查找唯一 URL,请前往 OneDrive for Business 门户,并从浏览器复制 URL。 此 URL 可能如以下示例所示:

https://contoso-my.sharepoint.com/personal/user123_contoso_com/_layouts/15/onedrive.aspx

不需要完整的 URL,只需要前几个部分。 在 Power Query 中使用的 URL 具有以下格式:

https://<unique_tenant_name>.sharepoint.com/personal/<user_identifier>

例如:

https://contoso-my.sharepoint/personal/user123_contoso_com

SharePoint.Contents 函数

通过 SharePoint 文件夹连接器,可以一次性查看 SharePoint 或 OneDrive for Business 站点中的所有可用文件,也可以选择其他体验。 在此体验中,可以浏览 SharePoint 或 OneDrive for Business 文件夹,找到感兴趣的文件夹或文件。

此体验通过 SharePoint.Contents 函数提供。 请按以下步骤使用该功能:

  1. 创建空白查询。

  2. 将编辑栏中的代码更改为 SharePoint.Contents("url"),其中 url 与 SharePoint 文件夹连接器所用的相同格式。 例如:

    SharePoint.Contents("https://contoso.sharepoint.com/marketing/data")

    注意

    默认情况下,此函数会尝试使用 SharePoint API 版本 14 进行连接。 如果不确定 SharePoint 网站正在使用的 API 版本,可能需要尝试使用以下示例代码:SharePoint.Contents("https://contoso.sharepoint.com/marketing/data", [ApiVersion="Auto"])

  3. Power Query 会要求为连接添加验证方法。 使用与 SharePoint 文件连接器相同的身份验证方法。

  4. 导航到你感兴趣的特定文件夹或文件的不同文档。

    例如,假设 SharePoint 网站包含“共享文档”文件夹。 可以在该文件夹的“内容”列中选择“”值,并直接导航到该文件夹。

    使用 SharePoint.Contents 函数连接到 SharePoint 网站后的表预览,其中包含一个名称为“Shared Documents”的文件夹。

    在此“共享文档”文件夹中,有一个公司存储所有销售报表的文件夹。 此文件夹名为“销售报表”。 可以为该行选择“内容”列上的“”值。

    导航到“Shared Documents”文件夹后显示的表预览。

    使用“销售报表”文件夹中的所有文件,可以选择“合并文件”按钮(请参阅“合并文件概述”),将此文件夹中所有文件的数据合并到单个表。 或者,可以通过从“内容”列中选择“二进制”值直接导航到所选的单个文件。

    导航到“Sales Reports”文件夹后显示的表预览。

注意

SharePoint.Contents 函数提供的体验最适合具有大量文件的 SharePoint 和 OneDrive for Business 环境。