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

如何用R读取企业版OneDrive的xlsx文件到本地环境用于Shiny应用?

解决方案

你之前调用的open_file方法本身设计用途为唤起浏览器打开在线文件,无法将数据导入R环境,替换为Microsoft365R内置的download_file方法即可实现需求,具体方案如下:

本地测试可用代码

首先修正你代码中的包名拼写错误,示例代码如下:

library(Microsoft365R)
library(readxl)

# 登录企业版OneDrive
odb <- get_business_onedrive()

# 创建临时文件存储xlsx,重启R后会自动清理无需手动删除
temp_file <- tempfile(fileext = ".xlsx")
# 从OneDrive下载文件到本地临时路径
odb$download_file(src = "lcursos.xlsx", dest = temp_file, overwrite = TRUE)
# 读取文件内容到R数据框
data <- read_excel(temp_file)

Shiny服务器无交互部署适配

部署到Web服务器时,需配置非交互式认证避免每次运行弹出手动登录窗口,可按以下方式调整:

  1. 首次在服务器环境运行时使用设备码认证,生成缓存令牌:
odb <- get_business_onedrive(
  tenant = "你的企业Azure租户ID",
  auth_type = "device_code"
)
  1. 后续运行可直接调用缓存的令牌,无需重复认证,也可自行注册Azure应用,传入应用ID和密钥实现完全无感知的自动认证。

权限问题排查

如果运行过程中依然出现403错误,可按以下规则排查:

  • 确认当前登录的企业账号对目标文件lcursos.xlsx有至少读取权限
  • 确认Azure账号的Microsoft365R应用权限已获得企业管理员同意,开通了OneDrive文件读取权限
  • 无需自行拼接文件直链,download_file方法会自动处理企业认证逻辑,避免直链访问的权限问题

内容的提问来源于stack exchange,提问作者MANUEL ALEJANDRO RODRIGUEZ ORT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:36:03