合并文件概述
使用 Power Query,可以将具有相同架构的多个文件合并到单个逻辑表中。
如果要合并同一文件夹中的所有文件,此功能非常有用。 例如,如果有一个包含公司所有采购订单的每月文件的文件夹,则可以合并这些文件,以将订单合并到单个视图中。
文件可以来自各种来源,例如(包括但不限于):
- 本地文件夹
- SharePoint 站点
- Azure Blob 存储
- Azure Data Lake 存储(Gen1 和 Gen2)
使用这些来源时,请注意,它们共享相同的表架构,通常称为文件系统视图。 以下屏幕截图显示了文件系统视图的示例。
在文件系统视图中,内容列包含每个文件的二进制表示形式。
注意
可以使用任何可用字段筛选文件系统视图中的文件列表。 最好筛选此视图,以便仅显示需要合并的文件,例如筛选扩展名或文件夹路径等字段。 详细信息:文件夹
在内容列中选择任何 [二进制] 值时,会自动创建该特定文件的一系列导航步骤。 Power Query 尝试使用其中一个可用连接器(如文本/CSV、Excel、JSON 或 XML)来解释二进制文件。
合并文件在以下阶段进行:
表预览
使用上述任何连接器连接到数据源时,将打开表预览。 如果确定要合并文件夹中的所有文件,请选择屏幕右下角的合并。
或者,可以选择“转换数据”以访问 Power Query 编辑器,并创建文件列表的子集(例如,通过在文件夹路径列上使用筛选器,以仅包含来自特定子文件夹的文件)。 然后,通过选择包含内容列中二进制文件的列,然后选择以下任一项来合并文件:
“合并文件”对话框
选择“合并”或“合并文件”命令后,将打开“合并文件”对话框,并发生以下操作:
- Power Query 分析示例文件(默认情况下,列表中的第一个文件),并确定用于打开该文件的正确文件连接器。
- 该对话框提供文件连接器体验,就像直接连接到该示例文件一样。
- 如果要对示例文件使用不同的文件,可以从示例文件下拉菜单中选择它。
- 可选:可以选择跳过出错文件,以便从最终输出中排除导致错误的任何文件。
在下图中,Power Query 检测到第一个文件具有 .csv 文件扩展名,因此它使用文本/CSV 连接器来解释该文件。
已合并文件输出
完成合并文件进程后,Power Query 会自动执行以下操作:
创建一个示例查询,以对单个文件执行所有必需的提取步骤。 它使用在“合并文件”对话框中选择的文件作为示例文件。
此示例查询在查询窗格中具有名称转换示例文件。
创建一个函数查询,以将文件/二进制输入参数化为示例查询。 示例查询和函数查询是链接的,因此对示例查询的更改将反映在函数查询中。
这些查询列在帮助程序查询组中。
将函数查询应用于包含输入二进制文件的原始查询(如文件夹查询)。 因此,它将函数查询应用于每一行的二进制输入,然后将生成的数据提取作为顶级列展开。
使用前缀转换文件自以及初始查询作为后缀创建一个新组,并组织用于在该组中创建这些已合并文件的所有组件。
只要具有相同的文件类型和结构(包括相同的列),就可轻松地合并给定文件夹中的所有文件。 还可以通过修改自动生成的示例查询来应用更多转换或提取步骤,而无需担心修改或创建其他函数查询步骤。
注意
可以修改示例查询中的步骤,以更改应用于查询中每个二进制文件的函数。 示例查询链接到函数,因此对示例查询所做的任何更改都将反映在函数查询中。
如果有更改影响列名称或列数据类型,请务必检查输出查询的最后一步。 添加更改列类型步骤可能会引入一个步骤级别错误,该错误会阻止可视化表。 详细信息:处理错误