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

Power Query中用相对路径导入子文件夹CSV文件的报错解决

Power Query 导入子文件夹CSV(相对路径)报错解决方法

错误原因

你用到的ChDir是VBA专用命令,Power Query的M语言并不支持这个函数,因此会出现Expression.Error: The name 'ChDir' wasn't recognized的错误。另外File.Contents需要指定具体的单个文件路径,不能直接使用*.csv通配符批量导入文件。

最优解决方法

通过Power Query自带的Folder.Files函数批量获取子文件夹内的CSV文件,结合当前工作簿的相对路径实现导入,具体步骤如下:

  1. 创建命名单元格获取当前工作簿路径

    • 在Excel任意空白单元格输入公式:=LEFT(CELL("filename"),FIND("[",CELL("filename"))-1)
    • 选中该单元格,点击公式栏左侧的名称框,输入WorkbookPath后回车完成命名。
  2. 使用Power Query M代码批量导入合并CSV
    打开Power Query编辑器,替换原有代码为以下内容:

    let
        // 获取当前工作簿所在文件夹路径
        CurrentWorkbookPath = Excel.CurrentWorkbook(){[Name="WorkbookPath"]}[Content]{0}[Column1],
        // 拼接子文件夹路径
        SourceFolder = CurrentWorkbookPath & "\SourceData\",
        // 获取子文件夹下所有文件
        Files = Folder.Files(SourceFolder),
        // 筛选出CSV格式文件
        FilteredCSV = Table.SelectRows(Files, each [Extension] = ".csv"),
        // 导入每个CSV文件并合并为一张表
        CombinedTables = Table.Combine(Table.AddColumn(FilteredCSV, "CSVContent", each Csv.Document(File.Contents([FullPath]), [Delimiter=",", Columns=18, Encoding=1252, QuoteStyle=QuoteStyle.None])))
    in
        CombinedTables
    

这段代码会自动遍历SourceData子文件夹下所有CSV文件,按照你指定的分隔符、列数等参数导入,并合并成一个完整的表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 08:06:20