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

Power BI自动识别年度文件夹并合并数据的高效方法问询

自动识别年度文件夹并合并SharePoint中Excel数据的高效方案

核心思路

通过Power Query的文件夹遍历与筛选能力,自动识别Control目录下所有4位数字命名的年份文件夹,批量加载对应路径下的Excel文件,最后合并所有数据,无需手动逐个指定年份。

实现步骤与代码示例

  1. 定义基础路径参数(可选,方便多资产复用)
    把资产的基础SharePoint路径设为参数,后续切换资产只需修改参数值:
let
    // 替换为你的资产Control文件夹的SharePoint站点相对路径或完整URL
    basePath = "https://your-sharepoint-site/sites/Projects/3.%20Assets/Type%20A/Asset%20Name/Control",
  1. 获取并筛选年份文件夹
    获取Control目录下的所有子文件夹,筛选出名称为4位数字(年份格式)的文件夹:
// 获取Control文件夹下的所有内容
    controlFolderContents = SharePoint.Files(basePath, [ApiVersion = 15]),
    // 筛选出文件夹类型,且名称为4位数字(年份)
    yearFolders = Table.SelectRows(controlFolderContents, each [IsFolder] = true and Text.Length([Name]) = 4 and Value.Is(Value.FromText([Name]), Int64.Type))
  1. 批量加载每个年份下的Excel数据
    对每个年份文件夹,拼接目标Excel文件的完整路径,加载数据:
// 为每个年份文件夹添加Excel文件的完整路径
    addExcelPath = Table.AddColumn(yearFolders, "ExcelFilePath", each [Folder Path] & [Name] & "/Data/Dataset/excel.xlsx"),
    // 加载每个Excel文件的数据(此处假设Excel只有一个工作表,如需指定工作表可修改Excel.Workbook参数)
    loadExcelData = Table.AddColumn(addExcelPath, "ExcelData", each Excel.Workbook(File.Contents([ExcelFilePath])){[Item="Sheet1",Kind="Sheet"]}[Data]),
  1. 合并所有数据表
    提取所有加载的数据表并合并:
// 提取所有Excel数据表并合并
    combinedData = Table.Combine(loadExcelData[ExcelData])
in
    combinedData

注意事项

  • 确保SharePoint.Files的ApiVersion与你的SharePoint版本匹配(15对应2013/2016,16对应Online)。
  • 如果Excel文件有多个工作表,可修改Excel.Workbook后的筛选逻辑,比如指定工作表名称或索引。
  • 多资产场景下,可将basePath设为查询参数,通过参数面板快速切换不同资产的路径,无需重复修改代码。

内容的提问来源于stack exchange,提问作者Matheus Assumpção Solinho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:46:00