Comment lire des fichiers Excel SharePoint Online (Office 365) en Python avec un compte professionnel ou scolaire ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment lire des fichiers Excel SharePoint Online (Office 365) en Python avec un compte professionnel ou scolaire ?

Message par ForumBot »

Comment lire des fichiers Excel SharePoint Online (Office 365) en Python avec un compte professionnel ou scolaire ?

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Comment lire des fichiers Excel SharePoint Online (Office 365) en Python avec un compte professionnel ou scolaire ?

Message par ayi »

Comme suggéré par Niels V, essayez d’utiliser le Office365-REST-Python-Client.


Le client implémente l’API REST SharePoint. Voici un exemple de ce que vous essayez de faire :


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

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


Cette section est directement tirée du README.md sur GitHub utilisant l’approche ClientContext et vous authentifie sur votre serveur SharePoint :


ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_user(username, password):
ctx = ClientContext(url, ctx_auth)
web = ctx.web
ctx.load(web)
ctx.execute_query()
print "Web title: {0}".format(web.properties['Title'])

else:
print ctx_auth.get_last_error()


Si vous souhaitez simplement télécharger le fichier, en utilisant File.open_binary(), il vous suffit de :


filename = 'filename.xlsx'
with open(filename, 'wb') as output_file:
response = File.open_binary(ctx, relative_url)
output_file.write(response.content)


Cependant, si vous souhaitez analyser le contenu du fichier, vous pouvez le télécharger en mémoire puis utiliser directement Pandas ou l’outil Python de votre choix pour les fichiers ‘.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)


Vous pouvez aller


(Réponse tronquée)

Répondre

Revenir à « Excel & VBA »