合并文件概述

使用 Power Query,可以将具有相同架构的多个文件合并到单个逻辑表中。

如果要合并同一文件夹中的所有文件,此功能非常有用。 例如,如果你有一个包含公司所有采购订单的每月文件的文件夹,则可以合并这些文件以将订单合并到单个视图中。

文件可能来自各种来源,例如(包括但不限于):

  • 本地文件夹
  • SharePoint 站点
  • Azure Blob 存储服务
  • Azure Data Lake Storage (Gen1 和 Gen2)

使用这些源时,请注意它们共享相同的表架构,通常称为 文件系统视图。 以下屏幕截图显示了文件系统视图的示例。

显示多个示例文件的文件系统视图的屏幕截图。

在文件系统视图中, 内容 列包含每个文件的二进制表示形式。

注释

可以使用任何可用字段筛选文件系统视图中的文件列表。 最好筛选此视图,以便仅显示需要合并的文件,例如筛选 “扩展 ”或 “文件夹路径”等字段。 有关详细信息,请转到 “文件夹”。

“内容 ”列中选择任何 [二进制] 值会自动创建该特定文件的一系列导航步骤。 Power Query 尝试使用某个可用连接器(如 Text/CSVExcel、JSON 或 XML)来解释二进制文件。

合并文件在以下阶段进行:

表预览

使用上述任何连接器连接到数据源时,将打开表预览。 如果确定要合并文件夹中的所有文件,请选择屏幕右下角的 “合并 ”。

突出显示了“合并”选项的表预览的屏幕截图。

或者,可以选择 “转换数据 ”以访问 Power Query 编辑器并创建文件列表的子集(例如,通过使用文件夹路径列上的筛选器仅包含来自特定子文件夹的文件)。 然后,通过选择包含 内容 列中二进制文件的列,然后选择以下任一项来合并文件:

  • 开始”选项卡上“合并”组中的“合并文件”命令。

    屏幕截图,其中突出显示了“开始”选项卡上的“合并文件”命令。

  • 包含 [Binary] 值的列标题中的 “合并文件 ”图标。

    屏幕截图,其中突出显示了列标题中的“合并文件”图标。

“合并文件”对话框

选择“ 合并 ”或 “合并文件 ”命令后,将打开 “合并文件 ”对话框,并执行以下作:

  1. Power Query 分析示例文件(默认情况下,列表中的第一个文件),并确定用于打开该文件的正确文件连接器。
  2. 该对话框提供文件连接器体验,就像直接连接到该示例文件一样。
    • 如果要对示例文件使用不同的文件,可以从 “示例文件 ”下拉菜单中选择它。
    • 可选:可以选择“ 跳过包含错误的文件 ”,以便从最终输出中排除导致错误的任何文件。

在下图中,Power Query 检测到第一个文件具有 .csv 文件扩展名,因此它使用 Text/CSV 连接器解释该文件。

“合并文件”对话框的屏幕截图,其中显示了示例文件和突出显示了错误选项的跳过文件。

组合文件输出

合并文件进程完成后,Power Query 会自动执行以下作:

  1. 创建一个示例查询,该查询对单个文件执行所有必需的提取步骤。 它使用在 “合并文件 ”对话框中选择的文件作为示例文件。

    此示例查询在“查询”窗格中具有“转换示例”文件的名称。

  2. 创建一个函数查询,该查询参数化示例查询的文件/二进制输入。 示例查询和函数查询链接,以便对示例查询所做的更改反映在函数查询中。

    这些查询列在 帮助程序查询 组中。

  3. 使用输入二进制文件将函数查询应用于原始查询(例如文件夹查询)。 因此,它会对每行的二进制输入应用函数查询,然后将生成的数据提取扩展为顶级列。

  4. 使用前缀 转换文件 以及初始查询作为后缀创建一个新组,并组织用于在该组中创建这些组合文件的所有组件。

    合并文件输出的屏幕截图。

只要给定文件夹中的所有文件具有相同的文件类型和结构(包括同一列),即可轻松合并它们。 还可以通过修改自动生成的示例查询来应用更多的转换或提取步骤,而无需担心修改或创建其他函数查询步骤。

注释

可以修改示例查询中的步骤,以更改应用于查询中每个二进制文件的函数。 示例查询链接到函数,因此对示例查询所做的任何更改都反映在函数查询中。

如果任何更改影响列名或列数据类型,请务必检查输出查询的最后一步。 添加 “更改”列类型 步骤可能会引入一个步骤级错误,该错误可阻止你可视化表。 有关详细信息,请转到 “处理错误”。

合并 CSV 文件