如何无需身份验证读取SharePoint中的Excel表格
核心前提
得先把SharePoint上的目标Excel文件设置成完全公开共享:打开文件后点「共享」,选择「任何人(可查看)」生成访问链接。只有文件公开到这个程度,才能跳过身份验证直接读取。
方法1:用Python Pandas直接读取
如果用Python处理数据,只需修改共享链接格式就能让Pandas直接识别:
- 复制SharePoint生成的共享链接,比如原始链接长这样:
https://xxx.sharepoint.com/:x:/r/sites/xxx/Shared%20Documents/xxx.xlsx?d=wxxx&csf=1&web=1&e=xxx - 把链接里的
:x:/r/替换成:/t/,再在末尾加&download=1,转成可直接下载的链接:https://xxx.sharepoint.com:/t/sites/xxx/Shared%20Documents/xxx.xlsx?d=wxxx&csf=1&web=1&e=xxx&download=1 - 用Pandas的
read_excel直接读取:
import pandas as pd # 替换成你转换后的公开链接 excel_public_url = "https://xxx.sharepoint.com:/t/sites/xxx/Shared%20Documents/xxx.xlsx?d=wxxx&csf=1&web=1&e=xxx&download=1" df = pd.read_excel(excel_public_url) print(df.head())
方法2:HTTP请求下载后读取
如果需要更灵活的控制(比如加超时、代理),可以先下载文件到内存再读取:
import requests import pandas as pd from io import BytesIO excel_public_url = "转换后的公开下载链接" # 发送请求获取文件内容 resp = requests.get(excel_public_url, timeout=30) resp.raise_for_status() # 确保请求成功 # 读取内存中的Excel文件 df = pd.read_excel(BytesIO(resp.content)) print(df.head())
踩坑提醒
- 要是文件没设成公开共享,不管用哪种方法都会报权限错误,一定要先确认共享权限。
- 部分老版本SharePoint的链接格式可能不一样,要是转换后访问失败,试试直接复制文件页面「下载」按钮对应的浏览器下载链接。
内容的提问来源于stack exchange,提问作者ED316
相关产品推荐
相关产品推荐

