Power Query中SharePoint路径的正确选择与配置问题
Power Query 动态用户路径匹配解决方案
原代码问题分析
- 语法错误:if语句括号未闭合、字符串拼接格式错误、标识符引号不匹配(如
#Sorted Rows"应为#"Sorted Rows") - 逻辑缺陷:直接用
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
相关产品推荐
相关产品推荐

