合并文件概述

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

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

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

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

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

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

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

注意

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

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

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

表预览

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

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

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

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

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

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

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

“合并文件”对话框

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

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

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

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

已合并文件输出

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

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

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

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

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

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

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

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

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

注意

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

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

合并 CSV 文件