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

存储在Sharepoint的预格式化WebDataRocks报告能否在R Shiny组件启动时加载

WebDataRocks在R Shiny中自动加载SharePoint存储文件的解决方案

报错截图如下:
报错截图

核心问题根因

你传入的SharePoint链接本质是预览页面地址,不是文件直链,同时存在跨域访问限制,所以WebDataRocks无法正常解析加载。

分步解决步骤

步骤1:优先采用后端拉取文件的方案(规避跨域+鉴权问题)

推荐用Microsoft365R包在Shiny服务端先拉取SharePoint存储的配置文件和数据集,再传入组件,不需要前端直接调用SharePoint接口,实现启动自动加载最新版本的需求,示例代码如下:

# 先安装依赖包
# install.packages(c("shiny", "webdatarocks", "Microsoft365R"))
library(shiny)
library(webdatarocks)
library(Microsoft365R)

# 初始化SharePoint连接,首次运行会弹出浏览器授权
sp_site <- get_sharepoint_site(site_url = "你的SharePoint站点URL")
# 替换为你的文档库名称,默认一般是"Shared Documents"
sp_drive <- sp_site$get_drive("Shared Documents")

ui <- fluidPage(
  pivtaOutput("pivot_table")
)

server <- function(input, output, session) {
  output$pivot_table <- renderPivta({
    # 拉取最新的透视表报告配置文件(JSON格式)
    report_content <- sp_drive$get_item("存储路径/你的透视表配置.json")$load_content()
    # 拉取最新的数据集文件(CSV/JSON都可)
    data_content <- sp_drive$get_item("存储路径/你的数据集.csv")$load_content()
    
    # 直接传入解析后的内容,不需要传URL
    pivta(
      report = report_content,
      dsource = data_content
    )
  })
}

shinyApp(ui, server)

步骤2:如果坚持用前端直传URL的方案,需完成两个配置

  • 把SharePoint的分享链接转为直链:将默认分享链接中的:f:/r/替换为:f:/r/download.aspx?SourceUrl=,同时把分享权限设置为「所有拥有链接的人员均可查看」
  • 联系SharePoint管理员在站点后台配置CORS规则,允许你的Shiny应用域名的跨域请求

额外校验项

  • 如果你的报告配置文件中硬编码了数据源路径,需要删除对应配置,通过dsource参数直接传入拉取到的最新数据集,避免加载旧版本数据
  • 确认使用的WebDataRocks版本支持动态传入配置和数据源,免费版无此功能限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:05