使用python读取onedrive 365上的excel文件

问题描述 投票:0回答:1

我只想读取位于 Onedrive 365 上的 Excel 文件。

我在网上阅读了很多资源,但没有任何效果!!!

我的实际代码是

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File 

url = 'https://yoursharepointsite.com/sites/documentsite'
username = 'yourusername'
password = 'yourpassword'
relative_url = '/sites/documentsite/Documents/filename.xlsx'

import io
import pandas as pd

response = File.open_binary(ctx, relative_url)

#save data to BytesIO stream
bytes_file_obj = io.BytesIO()
bytes_file_obj.write(response.content)
bytes_file_obj.seek(0) #set file object to start

#read file into pandas dataframe
df = pd.read_excel(bytes_file_obj)

我有以下错误

out>>> ModuleNotFoundError: No module named 'web'

你有什么想法吗?

python onedrive
1个回答
0
投票

您需要先进行身份验证,然后使用连接器返回文件:

from office365.runtime.auth.user_credential import UserCredential
from office365.sharepoint.client_context import ClientContext

site_url = "https://yoursharepointsite.com" + f"/sites/{documentsite}/"
ctx = ClientContext(site_url).with_credentials(
    UserCredential(username, password=password))
ctx.load(ctx.web)
ctx.execute_query()

from office365.sharepoint.files import file
import io

file_url = file_dl if dynamic else f'/sites/{documentsite}/{file_dl}'
response = file.File.open_binary(ctx, file_url)
bytes_file_obj = io.BytesIO()
bytes_file_obj.write(response.content)
bytes_file_obj.seek(0)
return bytes_file_obj
© www.soinside.com 2019 - 2024. All rights reserved.