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

能否直接读取MS Teams的文件/目录到Jupyter Notebook?

直接在Jupyter Notebook读取MS Teams文件的实现方案

核心逻辑

MS Teams的文件板块底层存储于关联的SharePoint/OneDrive for Business站点,无需下载到本地,可直接通过API拉取文件二进制流,直接传入pandas解析即可。

前置准备

安装所需依赖库:

pip install pandas openpyxl office365-rest-python-client

配置信息获取

打开Teams中目标文件,点击右上角「...」→ 选择「在浏览器中打开」,从浏览器地址栏提取两个核心信息:

  • SharePoint站点URL:格式为https://<企业域名>.sharepoint.com/sites/<Teams对应站点名>
  • 文件的服务器相对路径:格式为/sites/<Teams对应站点名>/Shared Documents/<Teams内的文件夹层级>/Core Design.xlsm

代码实现

替换你原有的本地读取代码为以下内容,原有read_excel的参数可以完全复用:

import pandas as pd
from io import BytesIO
from office365.runtime.auth.user_credential import UserCredential
from office365.sharepoint.client_context import ClientContext

# 替换为你自己的配置信息
SHAREPOINT_SITE_URL = "https://你的企业域名.sharepoint.com/sites/你的Teams站点名"
FILE_RELATIVE_PATH = "/sites/你的Teams站点名/Shared Documents/project opportunity/Part1/AI/Input Design Work/Core Design.xlsm"
USER_ACCOUNT = "你的企业办公邮箱"
USER_PASSWORD = "你的办公账号密码"

# 初始化SharePoint连接
ctx = ClientContext(SHAREPOINT_SITE_URL).with_credentials(UserCredential(USER_ACCOUNT, USER_PASSWORD))

# 拉取文件二进制流
file_content = ctx.web.get_file_by_server_relative_url(FILE_RELATIVE_PATH).download().execute_query()
file_stream = BytesIO(file_content.content)

# 直接解析Excel,参数和你本地读取的配置完全一致
df = pd.read_excel(
    file_stream,
    sheet_name="Allowance Plans",
    skiprows=9,
    engine="openpyxl"
)

可选扩展

如果需要批量读取指定文件夹下的所有Excel文件,可调用ctx.web.get_folder_by_server_relative_url获取文件夹下的所有文件列表,循环拉取流解析即可,自动同步所有新增文件,无需手动操作。

注意事项

  • 若账号开启了多因素认证(MFA),可替换为Azure AD应用注册的客户端ID+密钥方式认证,无需使用账号密码
  • 读取xlsm格式必须指定engine="openpyxl",否则会出现解析报错
  • 路径层级需和SharePoint内的实际存储路径完全一致,不要遗漏Shared Documents根节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:45:07