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

Power Query中SharePoint路径的正确选择与配置问题

Power Query 动态用户路径匹配解决方案

原代码问题分析

  1. 语法错误:if语句括号未闭合、字符串拼接格式错误、标识符引号不匹配(如#Sorted Rows"应为#"Sorted Rows")
  2. 逻辑缺陷:直接用Folder.Files判断路径存在性会触发报错,而非返回null;多路径匹配逻辑不完整

修正后的完整代码

let
    // 获取用户目录下的文件夹,按最近访问排序
    Source = Folder.Content("C:/Users"),
    #"Sort User Table" = Table.Sort(Source, {{"Date accessed", Order.Descending}}),
    // 取最近访问的第一个用户(跳过系统默认的Public文件夹)
    TargetUser = Table.Range(#"Sort User Table", 1, 1)[Name]{0},

    // 定义所有可能的目标路径模板
    PossiblePaths = {
        "C:/Users/" & TargetUser & "/path1",
        "C:/Users/" & TargetUser & "/path2",
        "C:/Users/" & TargetUser & "/path3" // 可继续添加更多路径
    },

    // 筛选出第一个存在的路径
    ValidPath = List.First(List.Select(PossiblePaths, each Folder.Exists(_))),

    // 仅当找到有效路径时继续处理,否则返回空表避免报错
    ProcessedFiles = if ValidPath <> null then
        let
            #"Get Folder Files" = Folder.Files(ValidPath),
            #"Sort Files by Name" = Table.Sort(#"Get Folder Files", {{"Name", Order.Descending}}),
            #"Keep Top 60 Files" = Table.FirstN(#"Sort Files by Name", 60),
            #"Combine File Contents" = Binary.Combine(#"Keep Top 60 Files"[Content]),
            #"Import CSV Data" = Csv.Document(#"Combine File Contents", [Delimiter=",", Columns=6, Encoding=1252, QuoteStyle=QuoteStyle.None])
            // 后续步骤继续在这里添加
        in
            #"Import CSV Data"
    else
        Table.FromRecords({}),

    // 后续处理步骤示例(根据实际需求修改)
    #"Sorted Rows1" = Table.Sort(ProcessedFiles, {{"Column1", Order.Ascending}})
in
    #"Sorted Rows1"

关键修改说明

  • 路径存在性检查:用Folder.Exists()替代直接调用Folder.Files(),避免路径不存在时触发报错
  • 多路径批量匹配:通过PossiblePaths列表集中管理所有可能的路径模板,方便后续扩展
  • 容错处理:如果没有找到有效路径,返回空表而非null,保证后续步骤不会崩溃
  • 语法规范:修正了标识符引号、括号闭合、路径拼接的格式错误,符合Power Query语法标准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:43:26