"Vous êtes-vous déjà demandé comment accéder à Microsoft SharePoint dans vos scripts Python ?
C'est précisément ce à quoi répond ce tutoriel : vous pourrez le faire de manière simple en utilisant un outil appelé Connect Bridge."
Publié initialement le 10 juillet 2019
Dernière mise à jour : 14 octobre 2026
En bref
- Fonctionnalités : permet à un script Python de lire et d'écrire des listes SharePoint et des bibliothèques de documents à l'aide de SQL standard, via ODBC et le
pyodbcmodule. - Comment : Un outil commercial, Connect Bridge (version d'essai gratuite disponible), fait le lien entre Python et SharePoint et présente l'API de SharePoint comme s'il s'agissait d'une base de données.
- Ce dont vous avez besoin : un ordinateur sous Windows, Python 3,
pyodbc, Connect Bridge avec un compte SharePoint configuré, ainsi que la chaîne de connexion ODBC qu'il génère. - Ce que vous obtenez : un script principal d'environ 15 lignes, ainsi que des exemples de requêtes SQL et de procédures stockées permettant de créer des listes, d'insérer des enregistrements, ainsi que de télécharger et de charger des documents.
- Mises en garde : Windows uniquement (testé par l'auteur) ; licence commerciale.
- Meilleur pour : les équipes qui raisonnent en SQL et souhaitent éviter d'apprendre directement l'API SharePoint.
Sommaire
Introduction
Cet article décrit comment faire Connexion Python à SharePoint, c'est-à-dire comment accéder aux données des systèmes Microsoft SharePoint (2013, 2016, 2019 ou Online) à partir de scripts écrits en Python. Les transferts de données s'effectuent via la couche ODBC.
Note de mise à jour : les exemples présentés dans cet article ont été initialement développés et testés entre 2019 et 2022 avec Python 3.7 et module pyodbc version 4.0.26. En octobre 2026, nous avons simplifié le script et réécrit son traitement des erreurs pour Python 3.14 et pyodbc 5.3.0. Si vous constatez un comportement différent dans votre environnement, merci de nous le signaler dans les commentaires.
Il est important de noter que dans cet article, nous utilisons un produit commercial appelé Connect Bridge. C'est en fait ce qui rend possible l'intégration Python / SharePoint, en permettant la communication de données d'une manière qui vous assure de ne pas perturber le côté SharePoint (et, croyez-moi, c'est TRÈS important). Vous pouvez obtenir un essai gratuit pour le Connect Bridge, vous pouvez donc essayer tout cela par vous-même.
Qu'est-ce que ce "Connect Bridge" ?
Je suis heureux que vous demandiez ! Connect Bridge est une plateforme d'intégration développée par Connecting Software qui vous permet de connecter n'importe quel logiciel par le biais de pilotes ODBC, JDBC ou de services Web. L'aperçu général de l'architecture de l'outil se trouve sur ce schéma de scénario client-serveur.
(opens in a new tab)Connect Bridge l'architecture de la plate-forme d'intégration
Comme vous pouvez le voir sur le diagramme d'architecture, l'outil peut être utilisé pour accéder non seulement aux données de Microsoft SharePoint à partir de votre script Python, mais vous pouvez également saisir/enregistrer des données de Microsoft Exchange et de Microsoft Dynamics CRM, parmi beaucoup d'autres.
Le but de notre travail était de créer un script Python qui nous permettrait de parler à SharePoint via Connect Bridge.
Nous utilisons SharePoint, mais il est possible d'utiliser une logique similaire pour se connecter à Microsoft Exchange ou à un CRM comme Salesforce ou Dynamics.
Pour commencer...
Commençons maintenant ce tutoriel ! Notre objectif est de créer un simple script Python qui accède à une instance SharePoint. Nous supposons que l'instance SharePoint existe déjà (assurez-vous d'avoir vos identifiants de connexion à portée de main). Voici les étapes simples que vous devez suivre :
1. Demander un essai gratuit et installer Connect Bridge
2. Installez Python pour Windows version 3.14+. Veuillez noter que, pour faciliter l'écriture, l'exécution et le débogage de mon script, nous avons utilisé Liclipse 12.0.1 avec le plugin PyDev, mais cela reste bien sûr facultatif. N'importe quel éditeur convient, comme VS Code ou PyCharm.
3. Installez module pyodbc 5.3.0+
4. Exécution du studio de gestion Connect Bridge et
4.1. Ajoutez un compte pour SharePoint (Comptes - Ajouter un compte). C'est ici que vous aurez besoin des informations d'identification dont nous avons parlé précédemment.
4.2. Ouvrez le Nouvelle requête et ensuite l'option Navigateur de connexion. Trouvez le Connecteur SharePoint et ouvrez-le jusqu'à ce que vous voyiez le DefaultConnection. Cliquez sur le bouton droit de la souris et choisissez Obtenir la chaîne de connexion. Copiez ensuite la chaîne de connexion ODBC. Vous en aurez besoin pour la transmettre au script.
4.3. Utilisez l'option Nouvelle requête pour tester une requête qui vous permettra d'accéder à ce dont vous avez besoin dans SharePoint. Nous allons donner un exemple de requête ici, mais c'est ici que vous devez indiquer ce que vous recherchez dans SharePoint. Une fois que vous avez cliqué sur Nouvelle requête, ouvrez le Navigateur de connexion. Trouvez le Connecteur SharePoint et ouvrez-le jusqu'à ce que vous voyiez le Tableaux (option). Vous verrez que le schéma contient une "table" appelée Site_Pages et que nous pouvons donc construire notre requête comme suit
SELECT UniqueId, ContentType, Created, Modified, ContentVersion FROM Site_Pages LIMIT 10 ;
pour sélectionner les 10 premières entrées de la liste de SharePoint. Pages du site liste. Il est important de noter que, bien qu'il semble que nous utilisions directement une base de données, ce n'est pas le cas.
Connect Bridge accède à l'API, puis présente les résultats comme s'il s'agissait d'une base de données. Une fois votre requête obtenue, copiez-la, car vous en aurez également besoin pour la transmettre au script.
Les mains sur le script !
Le fichier central et, en même temps, le seul fichier de notre solution est CBQuery.py. Le code source complet est ci-dessous. Veuillez vous concentrer sur les lignes 70-92 qui décrivent la solution de base. Vous trouverez ci-dessous une description complète du fonctionnement de ce script.
#!/usr/bin/env python3
# encoding: utf-8
"""
CBQuery -- récupération et écriture de données sur SharePoint
Exécute des requêtes SQL via le pilote ODBC Connect Bridge.
@auteur : Ana Neto
@créé : 04/07/2019
@mis à jour : 14/10/2026
"""
import sys
from argparse import ArgumentParser
from contextlib import closing
import pyodbc
def main():
parser = ArgumentParser(description=__doc__)
parser.add_argument("connstr", help="Chaîne de connexion ODBC provenant de Connect Bridge Management Studio")
parser.add_argument("query", help="Requête SQL ou instruction EXEC à exécuter")
args = parser.parse_args()
try:
# Fermer la connexion une fois l'opération terminée
with closing(pyodbc.connect(args.connstr)) as conn:
cursor = conn.cursor()
cursor.execute(args.query)
if cursor.description is None:
# Aucune ligne de résultat renvoyée
conn.commit()
print("OK")
else:
for row in cursor:
print(row)
conn.commit()
return 0
except KeyboardInterrupt:
return 130
except pyodbc.Error as err :
print(f"Erreur ODBC : {err}", file=sys.stderr)
return 2
if __name__ == "__main__" :
sys.exit(main())Voici ce que fait notre scénario :
- Le
argparsele bloc lit les deux arguments de ligne de commande,connstr(la chaîne de connexion ODBC) etrequête. - La variable `connstr` contient la chaîne de connexion ODBC que nous transmettons au module `pyodbc` pour établir une connexion ODBC (stockée dans le
connvariable). La connexion est encapsulée danscontextlib.closing, de sorte qu'il est toujours fermé à la fin du bloc, même en cas d'erreur. - Dans un deuxième temps, nous ouvrons un curseur de base de données à l'aide de la connexion enregistrée dans `conn`.
- Nous exécutons la requête SQL (il s'agit de la requête qui a été transmise via le paramètre de ligne de commande nommé « query »)
- Si l'instruction renvoie des lignes, nous parcourons le curseur et lisons les résultats ligne par ligne, en affichant chaque ligne brute. C'est l'approche que nous avons choisie pour cette démonstration, mais notez bien que le format de sortie peut être quelconque… nous pourrions le formater en XML, JSON, CSV… ou tout autre format d'échange de données. Nous pourrions également utiliser simplement l'objet de ligne de données brutes dans le code suivant pour effectuer des tâches personnalisées.
- Si l'instruction ne renvoie aucune ligne (INSERT, EXEC), le script affiche “ OK ”.
- Dans les deux cas, la transaction est validée explicitement ; les modifications apportées par les instructions INSERT et les procédures stockées sont donc enregistrées.
- Les erreurs ODBC sont affichées sur stderr et le script se termine avec le code 2. La combinaison Ctrl+C provoque la fin du script avec le code 130, tandis qu'une exécution réussie se termine avec le code 0.
Exécution du script CBQuery.py
CBQuery.py accepte deux arguments de ligne de commande positionnels : connstr et query.
Nous devons les copier depuis Connect Bridge Management Studio comme expliqué ci-dessus (point 4 de la Pour commencer ).
Exécutez ensuite le script comme suit :
python CBQuery.py "" "SELECT UniqueId, ContentType FROM Site_Pages LIMIT 10;"
Supposons maintenant que nous souhaitions créer une liste de contacts dans SharePoint et y ajouter un contact.
Nous devons en gros suivre le même processus, mais modifier la requête pour utiliser une “ procédure stockée ”. Là encore, cette “ procédure stockée ” accédera en réalité à SharePoint via l’API, mais elle insérera les données dans la table SharePoint que vous avez spécifiée. Voici la requête que nous devons exécuter :
EXEC SP_CREATE_TABLE 'MyContacts', 'Cette table a été créée en utilisant Connect Bridge', true, 'Contacts' ;
Les paramètres, dans l'ordre, sont les suivants : le nom de la nouvelle liste (Mes contacts); une description ; un indicateur booléen (vrai) ; et le modèle de liste SharePoint sur lequel le baser (Contacts).
La requête crée une nouvelle liste SharePoint (MyContacts), avec une description qui apparaîtra dans la barre de lancement rapide de la page SharePoint.
Nous devons maintenant exécuter la requête suivante pour mettre à jour la représentation du schéma Connect Bridge dans ODBC afin qu'elle reflète le schéma SharePoint. Ainsi, notre nouvelle “ table ” devient visible pour le client ODBC. (Cette procédure ne prend aucun paramètre.)
EXEC SP_UPDATE_SCHEMA ;
À ce stade, nous pouvons insérer une entrée de contact dans notre liste de contacts.
INSERT INTO MyContacts (Prénom, Nom) VALUES ('Ana', 'Neto') ;
Vous devriez maintenant pouvoir voir notre entrée et notre nouvelle liste SharePoint dans l'interface utilisateur SharePoint.
Nous pouvons sélectionner l'entrée que nous venons de créer en exécutant la requête suivante.
SÉLECTIONNER LE PRÉNOM, LE NOM DE FAMILLE à partir de MesContacts
Pour mettre en ligne un document partagé, nous utiliserons la liste SharePoint existante “ Documents ” et la “ procédure stockée ” SP_INSERT_SHAREDDOCUMENT. Les paramètres qu'elle prend en charge sont les suivants :
- Nom du tableau des documents partagés
- Nom du fichier
- Dossier (chemin relatif, sur le serveur)
- Type MIME
- Données du fichier (encodées en Base64 ; dans l'exemple ci-dessous,
SGVsbG8gV29ybGQ=correspond simplement au texte “ Hello World ”)
Nous pouvons insérer le document en faisant la déclaration suivante :
EXEC SP_INSERT_SHAREDDOCUMENT
'Documents',
'hello2.txt',
'/Documents partagés/Nouveau dossier',
'text/plain',
'SGVsbG8gV29ybGQ=';
Si vous souhaitez vérifier au préalable l'existence du dossier, vous pouvez exécuter l'instruction ci-dessous. Ses paramètres sont le nom de la bibliothèque de documents et le chemin d'accès relatif au dossier :
EXEC SP_ENSURE_FOLDER_PATH
'Documents',
'/NewFolder';
Après avoir exécuté la commande SP_INSERT_SHAREDDOCUMENT, nous pouvons vérifier la présence du document dans la table "Documents" en exécutant la commande :
SÉLECTIONNER L'ID, le nom des documents ;
Nous pouvons également télécharger le contenu binaire d'un document donné à partir d'une bibliothèque de documents spécifique en exécutant l'instruction suivante : ci-dessous. Ses paramètres sont le nom de la bibliothèque et l'identifiant du document, tels qu'ils sont renvoyés par la fonction SELECT ci-dessus :
EXEC SP_SAVE_SHAREDDOCUMENT_BY_ID 'Documents', 2 ;
À ce stade, vous pouvez vérifier si le document partagé existe dans l'interface utilisateur de SharePoint.
Contraintes
Jusqu'à présent, nous n'avons pu utiliser l'outil Connect Bridge que sous les systèmes d'exploitation Windows, car aucune bibliothèque client ODBC n'est disponible sous Linux (et nous ne savons même pas si cela est possible). Veillez donc à tester vos scripts Python sur une machine Windows.
Conclusion
Nous avons vu à quel point il est facile d'accéder aux données SharePoint en Python grâce à la plateforme d'intégration Connect Bridge. Imaginez maintenant que ce que vous avez vu dans cet article soit également possible avec Microsoft Dynamics CRM et Microsoft Exchange ! Oui, avec Connect Bridge, c'est possible, et la procédure à suivre est similaire.
À qui puis-je m'adresser pour toute question ?

Par Ana Neto, conseiller technique à Connecting Software.
"Je suis ingénieur logiciel depuis 1997, et depuis peu, j'aime écrire et parler en public. Avez-vous des questions ou des commentaires sur cet article ? J'aimerais avoir votre avis, laissez un commentaire ci-dessous !"

Comments 1
Merci pour cette explication claire !