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

Power Query提取文件扩展名报错,需判断CSV/XLSX格式求助

问题解决:Power Query提取文件扩展名并验证

错误原因分析

你遇到的错误是因为在let语句的变量赋值中误用了记录字段的简写语法:

  • [FilePath]或_[FilePath]是Power Query中针对记录对象字段的引用方式,仅在each表达式(比如处理表格行数据时)有效。
  • 而你定义的FilePath是let块中的普通变量,直接使用变量名即可,不需要加方括号或下划线前缀。

修正后的完整代码(含扩展名验证)

下面的代码会先提取文件扩展名,验证是否为CSV或XLSX,如果不符合则抛出提示,符合则正常导入文件:

let
    // 获取单元格中存储的文件路径
    FilePath = Excel.CurrentWorkbook(){[Name="fp"]}[Content]{0}[TheFilePath],
    // 提取文件扩展名(转为大写,避免大小写问题)
    FileExt = Text.Upper(Text.AfterDelimiter(FilePath, ".", {0, RelativePosition.FromEnd})),
    // 验证扩展名是否合法
    ValidateExt = if List.Contains({"CSV", "XLSX"}, FileExt) then FilePath else error "文件扩展名必须为CSV或XLSX",
    // 导入文件
    Source = Excel.Workbook(File.Contents(ValidateExt))
in
    Source

代码说明

  1. 提取扩展名:使用Text.AfterDelimiter从文件路径末尾提取最后一个.之后的内容,并用Text.Upper统一转为大写,避免因大小写(比如.csv或.Csv)导致验证失败。
  2. 扩展名验证:用List.Contains判断提取的扩展名是否在允许的列表中,若不符合则抛出自定义错误提示;若符合则继续执行文件导入。
  3. 变量引用:直接使用FilePath变量名,而非错误的[FilePath]或_[FilePath],符合Power Query的变量引用规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:06:34