Dans certains cas, nous devrons peut-être modifier des documents Word par programmation. Nous pouvons facilement ajouter, modifier ou supprimer le contenu des fichiers DOC ou DOCX ou appliquer un formatage de texte à l’aide de Python. Dans cet article, nous allons apprendre à modifier des documents Word à l’aide d’une API REST en Python.
Les sujets suivants seront traités dans cet article :
- API REST de l’éditeur de documents Word et SDK Python
- Modifier un document Word à l’aide de l’API REST en Python
- Ajouter un tableau dans des documents Word à l’aide de Python
- Insérer une image dans des documents Word à l’aide de Python
API REST de l’éditeur de documents Word et SDK Python
Pour éditer les fichiers DOCX, nous utiliserons l’API Python SDK of GroupDocs.Editor Cloud. Veuillez l’installer à l’aide de la commande suivante dans la console :
pip install groupdocs_editor_cloud
Veuillez obtenir votre ID client et votre secret à partir du tableau de bord avant de suivre les étapes mentionnées. Une fois que vous avez votre identifiant et votre secret, ajoutez le code comme indiqué ci-dessous :
client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"
configuration = groupdocs_editor_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""
Modifier des documents Word à l’aide de l’API REST en Python
Nous pouvons éditer des documents Word en suivant les étapes simples mentionnées ci-dessous :
- Télécharger le fichier DOCX dans le Cloud
- Modifier Document Word utilisant Python
- Télécharger le fichier mis à jour
Télécharger le document
Tout d’abord, nous allons télécharger le fichier DOCX sur le Cloud en utilisant l’exemple de code ci-dessous :
# Créer une instance de l'API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)
# Télécharger des exemples de fichiers
request = groupdocs_editor_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Editor\\sample.docx", my_storage)
response = file_api.upload_file(request)
Par conséquent, le fichier DOCX téléchargé sera disponible dans la section des fichiers du tableau de bord sur le cloud.
Modifier un document Word à l’aide de Python
Nous pouvons modifier le document Word par programmation en suivant les étapes ci-dessous :
- Tout d’abord, créez des instances de FileApi et de EditApi.
- Ensuite, créez une instance de FileInfo et fournissez le chemin d’accès au fichier DOCX d’entrée.
- Ensuite, initialisez une instance de WordProcessingLoadOptions et affectez FileInfo.
- Ensuite, créez l’objet LoadRequest avec WordProcessingLoadOptions comme argument.
- Ensuite, appelez la méthode EditApi.load() avec l’objet LoadRequest pour charger le fichier DOCX d’entrée.
- Après cela, créez le DownloadFileRequest avec le fichier chargé.
- Ensuite, appelez la méthode FileApi.download\file() pour télécharger le fichier en tant que document HTML.
- Ensuite, lisez le fichier HTML téléchargé sous forme de chaîne.
- Modifiez ensuite le code HTML et enregistrez le document HTML mis à jour.
- Ensuite, créez UploadFileRequest et transmettez le chemin HTML et le fichier en tant que paramètres.
- Ensuite, appelez la méthode FileApi.upload\file() avec UploadFileRequest pour télécharger le fichier HTML mis à jour.
- Ensuite, créez une instance de WordProcessingSaveOptions à enregistrer dans le DOCX.
- Après cela, créez SaveRequest avec l’objet WordProcessingSaveOptions.
- Enfin, enregistrez le HTML dans DOCX à l’aide de la méthode EditApi.save() avec l’objet SaveRequest.
L’exemple de code suivant montre comment modifier un document Word à l’aide d’une API REST en Python.
# Initialiser les instances des API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Indiquez le chemin du fichier d'entrée
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Définissez ChargerOptions pour le charger dans un état modifiable
loadOptions = groupdocs_editor_cloud.WordProcessingChargerOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Créer une demande de chargement
loadRequest = groupdocs_editor_cloud.ChargerRequest(loadOptions)
# Charger
loadResult = editApi.load(loadRequest)
# Créer une demande de téléchargement
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Télécharger le document html
htmlFile = fileApi.download_file(downloadRequest)
# Lire le document html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Modifier quelque chose...
html = html.replace("Title of the document", "Hello world")
html = html.replace("Subtitle #1", "Welcome")
# Réécrire le code HTML dans le fichier
with open(htmlFile, 'w') as file:
file.write(html)
# Créer une demande de téléchargement
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Téléverser un fichier
fileApi.upload_file(uploadRequest)
# Enregistrer le html dans docx
saveOptions = groupdocs_editor_cloud.WordProcessingSauvegarderOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/edited.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Créer une demande de sauvegarde
saveRequest = groupdocs_editor_cloud.SauvegarderRequest(saveOptions)
# Sauvegarder
saveResult = editApi.save(saveRequest)
# Fait
print("Document edited: " + saveResult.path)
Télécharger le fichier mis à jour
L’exemple de code ci-dessus enregistrera le document Word modifié (DOCX) sur le cloud. Il peut être téléchargé à l’aide de l’exemple de code suivant :
# Initialisation de l'API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)
# Créer une demande de fichier de téléchargement
request = groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", my_storage)
# Télécharger un fichier
response = file_api.download_file(request)
# Déplacez le fichier téléchargé dans votre répertoire de travail
shutil.move(response, "C:\\Files\\Editor\\")
Ajouter un tableau dans des documents Word à l’aide de Python
Nous pouvons ajouter une table dans des documents Word par programme en suivant les étapes mentionnées précédemment. Cependant, nous devons mettre à jour le code HTML pour ajouter un tableau dans le document, comme indiqué ci-dessous :
html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
<caption style=\"font-weight:bold;\"> Persons List</caption>
<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
</table>""")
L’exemple de code suivant montre comment ajouter un tableau dans un document Word à l’aide d’une API REST en Python. Veuillez suivre les étapes mentionnées précédemment pour charger et télécharger un fichier.
# Initialiser les instances des API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Indiquez le chemin du fichier d'entrée
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Définissez ChargerOptions pour le charger dans un état modifiable
loadOptions = groupdocs_editor_cloud.WordProcessingChargerOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Créer une demande de chargement
loadRequest = groupdocs_editor_cloud.ChargerRequest(loadOptions)
# Charger
loadResult = editApi.load(loadRequest)
# Créer une demande de téléchargement
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Télécharger le document html
htmlFile = fileApi.download_file(downloadRequest)
# Lire le document html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Insérer un tableau
html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
<caption style=\"font-weight:bold;\"> Persons List</caption>
<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
</table>""")
# Réécrire le code HTML dans le fichier
with open(htmlFile, 'w') as file:
file.write(html)
# Créer une demande de téléchargement
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Téléverser un fichier
fileApi.upload_file(uploadRequest)
# Enregistrer le html dans docx
saveOptions = groupdocs_editor_cloud.WordProcessingSauvegarderOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_table.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Créer une demande de sauvegarde
saveRequest = groupdocs_editor_cloud.SauvegarderRequest(saveOptions)
# Sauvegarder
saveResult = editApi.save(saveRequest)
# Fait
print("Document edited: " + saveResult.path)
Insérer une image dans des documents Word à l’aide de Python
Nous pouvons insérer une image dans des documents Word par programmation en suivant les étapes mentionnées précédemment. Cependant, nous devons mettre à jour le HTML pour insérer une image dans le document comme indiqué ci-dessous :
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");
L’exemple de code suivant montre comment insérer une image dans un document Word à l’aide d’une API REST en Python. Veuillez suivre les étapes mentionnées précédemment pour charger et télécharger un fichier.
# Initialiser les instances des API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Indiquez le chemin du fichier d'entrée
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Définissez ChargerOptions pour le charger dans un état modifiable
loadOptions = groupdocs_editor_cloud.WordProcessingChargerOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Créer une demande de chargement
loadRequest = groupdocs_editor_cloud.ChargerRequest(loadOptions)
# Charger
loadResult = editApi.load(loadRequest)
# Créer une demande de téléchargement
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Télécharger le document html
htmlFile = fileApi.download_file(downloadRequest)
# Lire le document html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Insérer une image
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");
# Réécrire le code HTML dans le fichier
with open(htmlFile, 'w') as file:
file.write(html)
# Créer une demande de téléchargement
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Téléverser un fichier
fileApi.upload_file(uploadRequest)
# Enregistrer le html dans docx
saveOptions = groupdocs_editor_cloud.WordProcessingSauvegarderOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_image.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Créer une demande de sauvegarde
saveRequest = groupdocs_editor_cloud.SauvegarderRequest(saveOptions)
# Sauvegarder
saveResult = editApi.save(saveRequest)
# Fait
print("Document edited: " + saveResult.path)
Essayez en ligne
Veuillez essayer l’outil d’édition DOCX en ligne gratuit suivant, qui est développé à l’aide de l’API ci-dessus. https://products.groupdocs.app/editor/docx
Conclusion
Dans cet article, nous avons appris à modifier des documents Word sur le cloud. Nous avons également vu comment ajouter un tableau ou insérer une image dans le fichier DOCX à l’aide d’une API REST en Python. Cet article a également expliqué comment télécharger par programmation un fichier DOCX dans le cloud, puis télécharger le fichier modifié à partir du cloud. En outre, vous pouvez en savoir plus sur l’API Cloud GroupDocs.Editor à l’aide de la documentation. Nous fournissons également une section API Reference qui vous permet de visualiser et d’interagir avec nos API directement via le navigateur. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.