合并文件概述

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

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

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

  • 本地文件夹
  • SharePoint 网站
  • Azure Blob 存储
  • Azure Data Lake 存储(Gen1 和 Gen2)

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

文件系统视图。

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

注意

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

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

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

表预览

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

带有“合并”选项的表格预览。

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

  • 主页选项卡上合并组中的合并文件命令。

    “主页”选项卡上的“合并文件”命令。

  • 包含 [二进制] 值的列的列标题中的合并文件图标。

    列标题中的“合并文件”图标。

“合并文件”对话框

选择合并合并文件命令后,将打开合并文件对话框,并发生以下情况:

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

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

“合并文件”对话框。

已合并文件输出

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

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

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

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

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

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

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

    已合并文件输出。

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

注意

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

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

另请参阅

合并 CSV 文件