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

如何将多个CSV文件导入Power Query Editor并生成独立单文件查询

批量将文件夹中CSV转为Power Query独立查询的方法

方法一:VBA批量生成(高效推荐)

步骤1:导出文件列表到Excel

  1. 点击数据 > 获取数据 > 文件 > 文件夹,选择存放CSV的目标文件夹,点击「确定」。
  2. 在弹出的文件夹预览窗口,点击「编辑」进入Power Query编辑器。
  3. 删除「文件夹路径」「修改日期」等多余列,只保留名称和文件路径两列。
  4. 添加自定义列:点击「添加列 > 自定义列」,输入公式Text.BeforeDelimiter([名称], ".csv"),将新列命名为「查询名称」,然后删除原「名称」列。
  5. 点击「关闭并上载」,将处理后的文件列表保存到Excel工作表(可重命名为FileList)。

步骤2:运行VBA宏创建查询

  1. 按Alt+F11打开VBA编辑器,右键点击当前工作簿,选择「插入 > 模块」。
  2. 粘贴以下代码到模块中:
Sub CreateCSVQueries()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim row As Integer
    Dim queryName As String
    Dim filePath As String
    Dim mCode As String
    
    ' 替换为存放文件列表的工作表名称
    Set ws = ThisWorkbook.Worksheets("FileList")
    Set tbl = ws.ListObjects(1)
    
    For row = 1 To tbl.ListRows.Count
        queryName = tbl.ListColumns("查询名称").DataBodyRange(row).Value
        filePath = tbl.ListColumns("文件路径").DataBodyRange(row).Value
        
        ' 构建Power Query的M代码(可根据CSV编码、分隔符调整参数)
        mCode = "let" & vbCrLf & _
                "    Source = Csv.Document(File.Contents(""" & filePath & """), [Delimiter="","", Encoding=65001, QuoteStyle=QuoteStyle.Csv])" & vbCrLf & _
                "in" & vbCrLf & _
                "    Source"
        
        ' 创建独立查询
        ThisWorkbook.Queries.Add Name:=queryName, Formula:=mCode
    Next row
    
    MsgBox "所有查询创建完成!"
End Sub
  1. 返回Excel,按F5运行宏(若提示宏被禁用,需在文件选项中启用宏)。

方法二:手动拆分合并查询(适合少量文件)

  1. 导入文件夹得到合并查询后,右键点击查询名选择「高级编辑器」,复制全部M代码。
  2. 点击数据 > 获取数据 > 空白查询,打开高级编辑器,粘贴代码。
  3. 修改代码中的Source部分:将文件夹路径替换为单个CSV的完整路径,同时修改查询名称,重复此操作直到所有CSV都生成独立查询。

注意事项

  • 若CSV使用GB2312编码,将代码中的Encoding=65001改为Encoding=936。
  • 若CSV是制表符分隔,将Delimiter="",""改为Delimiter=#tab。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:22:13