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

如何在Power Query M代码中将SharePoint上的.xlsm文件设为数据源?

解决Power BI通过M代码导入SharePoint上的.xlsm文件问题

Power Query中没有xlsm.Document这个内置函数,处理.xlsm(启用宏的Excel工作簿)需要用Excel.Workbook函数解析Web.Contents获取的二进制文件内容,以下是具体的代码修改方案:

基础版代码(加载整个工作簿的表和工作表列表)

let
    Source = Web.Contents("https://你的SharePoint站点地址/文件路径/目标文件.xlsm"),
    // 解析二进制内容为Excel工作簿,第二个参数启用宏工作簿支持,第三个参数延迟数据类型检测
    ExcelWorkbook = Excel.Workbook(Source, true, true)
in
    ExcelWorkbook

进阶版代码(直接加载指定工作表的数据)

如果需要直接加载某个特定工作表(比如名为"销售数据"的工作表),可以扩展代码:

let
    Source = Web.Contents("https://你的SharePoint站点地址/文件路径/目标文件.xlsm"),
    ExcelWorkbook = Excel.Workbook(Source, true, true),
    // 定位到指定工作表,Item填写工作表名称,Kind指定为"Sheet"
    TargetSheet = ExcelWorkbook{[Item="销售数据", Kind="Sheet"]}[Data]
in
    TargetSheet

关键注意事项

  • 替换URL:把代码中的URL替换为SharePoint上.xlsm文件的直接访问链接,可通过SharePoint文件页面的「复制链接」功能获取,确保链接权限允许当前账号访问。
  • 权限配置:若运行代码时出现权限错误,需在Power BI的「数据源设置」中配置对应身份验证方式(通常是OAuth 2.0或Windows身份验证,匹配SharePoint的权限体系)。
  • 参数说明:Excel.Workbook的第二个参数设为true是为了兼容启用宏的工作簿,第三个参数true表示延迟数据类型检测(先以文本格式加载所有列,后续可手动调整),若需要自动检测类型可改为false。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:06:26