You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSDT 2017 Get Data导入同文件夹多平面文件(csv/txt)问题咨询

如何用Power Query导入同一文件夹下的多个CSV/TXT文件

我刚好处理过类似的需求,用Power Query导入同一文件夹下的多个CSV/TXT文件其实很直观,核心是连接到文件夹而非单个文件,下面一步步给你拆解操作和M代码逻辑:

一、建立初始数据源连接

绝对不要选单个文件,直接连接到存放所有CSV/TXT的目标文件夹:

  • 打开Power Query编辑器(不管是Excel里的「数据」>「获取数据」,还是Power BI的「主页」>「获取数据」)
  • 选择「从文件」>「从文件夹」
  • 弹出路径选择框后,选中你的目标文件夹,点击「确定」
  • 此时你会看到文件夹内所有文件的元数据列表(包括文件名、扩展名、路径、修改时间等)

二、构建查询链(M代码操作)

接下来通过几步操作把元数据转换成合并后的文件内容,你可以用可视化操作生成M代码,也可以直接编辑M代码:

1. 筛选目标文件类型

首先只保留你需要的CSV/TXT文件:

  • 在「扩展名」列的筛选按钮上点击,只勾选.csv或.txt(根据你的需求)
  • 这一步对应的M代码逻辑是Table.SelectRows(Source, each [Extension] = ".csv")

2. 添加自定义列加载文件内容

现在要让Power Query读取每个文件的内容:

  • 点击「添加列」>「自定义列」
  • 在公式框里输入对应文件类型的加载公式:
    • 对于CSV文件:Table.FromRecords(Csv.Document(File.Contents([Folder Path]&[Name])))
    • 对于制表符分隔的TXT文件:Table.FromRecords(Csv.Document(File.Contents([Folder Path]&[Name]), [Delimiter="\t"]))

    注:如果你的TXT是其他分隔符(比如逗号、分号),把Delimiter的值改成对应的符号即可

  • 点击「确定」后,会新增一列包含每个文件内容的表格

3. 展开文件内容列

把所有文件的内容合并到一个表格里:

  • 点击新增加的「自定义列」右侧的展开按钮(就是那个带箭头的图标)
  • 如果所有文件的表头结构一致,直接选择「展开到新行」或者勾选所有列名展开;如果结构不一致,可以选择「仅创建加载」后再处理表头合并

4. 整理最终数据

最后做一些收尾清理:

  • 移除不需要的元数据列(比如文件名、路径、修改时间等)
  • 调整各列的数据类型(比如把数字列改成数值类型,日期列改成日期类型)
  • 如果每个文件都自带表头,可能需要移除重复的表头行(可以通过筛选「列1」不等于表头文本实现)

完整M代码示例(CSV文件)

这里给你一个可直接参考的完整M代码模板,替换成你的文件夹路径即可:

let
    // 替换成你的目标文件夹路径
    Source = Folder.Files("C:\你的文件夹路径"),
    // 筛选CSV文件
    FilteredFiles = Table.SelectRows(Source, each [Extension] = ".csv"),
    // 加载每个文件的内容
    AddedFileContent = Table.AddColumn(FilteredFiles, "文件内容", each Table.FromRecords(Csv.Document(File.Contents([Folder Path]&[Name])))),
    // 展开内容列(这里的列名要和你的文件表头对应)
    ExpandedContent = Table.ExpandTableColumn(AddedFileContent, "文件内容", {"姓名", "年龄", "城市"}, {"姓名", "年龄", "城市"}),
    // 移除无关的元数据列
    CleanedTable = Table.RemoveColumns(ExpandedContent,{"Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path", "File Size"})
in
    CleanedTable

关于Excel操作不适用的说明

你提到Excel里的操作似乎无法适用,大概率是之前误选了「从CSV/TXT」而不是「从文件夹」——其实Excel和Power BI的Power Query操作逻辑是完全一致的,按照上面的步骤在Excel里重新操作一遍应该就能解决问题。

内容的提问来源于stack exchange,提问作者dmytro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:16:27