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

如何用R程序读取或下载公开的Office365 XLSX文件?

解决OneDrive公开预览链接无法在R中下载/读取XLSX的问题

你遇到的问题根源是使用的OneDrive网页预览链接,而非文件的直接下载地址,因此readxl::read_excel无法识别,download.file仅能下载预览页面的HTML内容。以下是可行的解决方案:

核心操作:转换为直接下载链接

将原链接中的view替换为download,即可得到文件的直接下载地址:
原链接:https://onedrive.live.com/view?id=3B8590FB83D36ADC!550&resid=3B8590FB83D36ADC!550&authkey=!ACKE9hDQI06CKgw&wdo=2&cid=3b8590fb83d36adc
修改后:https://onedrive.live.com/download?id=3B8590FB83D36ADC!550&resid=3B8590FB83D36ADC!550&authkey=!ACKE9hDQI06CKgw&wdo=2&cid=3b8590fb83d36adc


方法1:直接读取到R环境

使用修改后的下载链接,结合readxl直接读取(若直接读取失败,可通过临时文件中转):

直接读取(推荐)

library(readxl)
# 使用修改后的下载链接
df <- read_excel("https://onedrive.live.com/download?id=3B8590FB83D36ADC!550&resid=3B8590FB83D36ADC!550&authkey=!ACKE9hDQI06CKgw&wdo=2&cid=3b8590fb83d36adc")

临时文件中转(若直接读取报错)

library(readxl)

# 创建临时XLSX文件
temp_xlsx <- tempfile(fileext = ".xlsx")
# 下载文件(必须指定mode="wb",保证二进制文件完整性)
download.file("https://onedrive.live.com/download?id=3B8590FB83D36ADC!550&resid=3B8590FB83D36ADC!550&authkey=!ACKE9hDQI06CKgw&wdo=2&cid=3b8590fb83d36adc", 
              destfile = temp_xlsx, 
              mode = "wb")
# 读取数据
df <- read_excel(temp_xlsx)
# 可选:清理临时文件
file.remove(temp_xlsx)

方法2:下载到本地指定路径

同样使用修改后的下载链接,加上mode="wb"参数(XLSX为二进制文件,必须设置此参数避免文件损坏):

download.file("https://onedrive.live.com/download?id=3B8590FB83D36ADC!550&resid=3B8590FB83D36ADC!550&authkey=!ACKE9hDQI06CKgw&wdo=2&cid=3b8590fb83d36adc", 
              destfile = "~/downloads/test.xlsx", 
              mode = "wb")

内容的提问来源于stack exchange,提问作者John J.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:09:58