


Comment insérer un modèle HTML rendu dans un document Google à l'aide de Python
Je suis confronté à un défi pour insérer par programme un modèle HTML dans un document Google à l'aide de Python. Je sais qu'il n'existe aucune fonctionnalité native/intégrée dans l'éditeur Google Docs ou l'API Google Docs qui puisse résoudre mon problème, mais j'ai essayé quelques astuces pour atteindre mon objectif. Ici, nous ignorons "où" dans le document nous devrions insérer, pour l'instant, une simple insertion réussie suffit.
Ma méthode est la suivante :
- Téléchargez le fichier html dans Google Drive avec le nom
application/vnd.google-apps.document
car Google Docs convertira automatiquement le HTML en doc. (Pas parfait, mais efficace) - Utilisez google docs api get() pour obtenir le contenu du fichier (format google docs json).
- Utilisez google docs batchupdate() pour mettre à jour le fichier cible avec le nouveau contenu.
def insert_template_to_file(target_file_id, content): media = MediaIoBaseUpload(BytesIO(content.encode('utf-8')), mimetype='text/html', resumable=True) body = { 'name': 'document_test_html', 'mimeType': 'application/vnd.google-apps.document', 'parents': [DOC_FOLDER_ID] } try: # Create HTML as docs because it automatically convert html to docs content_file = driver_service.files().create(body=body, media_body=media).execute() content_file_id = content_file.get('id') # Collect html content from Google Docs after created doc = docs_service.documents().get(documentId=content_file_id, fields='body').execute() request_content = doc.get('body').get('content') # Insert the content from html to target file result = docs_service.documents().batchUpdate(documentId=target_file_id, body={'requests': request_content}).execute() print(result) # Delete html docs driver_service.files().delete(fileId=content_file_id).execute() print("Content inserted successfuly") except HttpError as error: # Delete html docs even if failed driver_service.files().delete(fileId=content_file_id).execute() print(f"An error occurred: {error}")
Le problème est le suivant : Ce que je déduis de l'étape 2 ne correspond pas à ce qu'exige batchupdate(). J'essaie d'ajuster les choses à l'étape 2 pour qu'elles correspondent à l'étape 3, mais je n'ai pas encore réussi.
Solution cible : Obtenez la chaîne avec le code html, Insérez le code HTML rendu dans le fichier cible sur Google Docs. L'objectif est d'ajouter le contenu existant du fichier cible au code HTML, et non de l'écraser.
Mon approche a-t-elle du sens ? Avez-vous d'autres idées pour atteindre mon objectif ?
Bonne réponse
Je crois que vos objectifs sont les suivants.
- Vous souhaitez ajouter des données HTML à un document Google en rendant le HTML.
- Vous souhaitez utiliser googleapis pour python pour y parvenir.
Malheureusement, à ce stade, l'objet json récupéré par "method:documents.get" ne semble pas être directement utilisé comme corps de requête de "method:documents.batchupdate".
Cependant, si vous souhaitez ajouter du HTML à un document Google existant, je pense que vous pouvez le faire en utilisant uniquement l'API du lecteur. Qu’en est-il de l’exemple de script ci-dessous lorsque cela se reflète dans l’exemple de script ?
Exemple de script :
def insert_template_to_file(target_file_id, content): request = drive_service.files().export(fileId=target_file_id, mimeType="text/html") file = BytesIO() downloader = MediaIoBaseDownload(file, request) done = False while done is False: status, done = downloader.next_chunk() print("Download %d%%" % int(status.progress() * 100)) file.seek(0) current_html = file.read() media = MediaIoBaseUpload(BytesIO(current_html + content.encode('utf-8')), mimetype='text/html', resumable=True) body = {'mimeType': 'application/vnd.google-apps.document'} try: result = drive_service.files().update(fileId=target_file_id, body=body, media_body=media).execute() print(result) print("Content inserted successfuly") except HttpError as error: print(f"An error occurred: {error}")
- Dans ce script modifié, les données HTML sont récupérées à partir d'un document Google existant et le nouveau code HTML est ajouté au code HTML récupéré. De plus, les documents Google sont mis à jour avec du HTML mis à jour. Dans votre cas, les données brutes semblent être du HTML. Je pense donc que cette méthode peut fonctionner.
Remarque :
- Ce script écrasera les documents Google de
target_file_id
. Ainsi, lorsque vous testez ce script, je vous recommande d'utiliser les exemples de documents Google.
Référence :
- Méthode : files.export李>
- Méthode : files.update一个> du lecteur api v3
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Les expressions régulières sont des outils puissants pour la correspondance des motifs et la manipulation du texte dans la programmation, améliorant l'efficacité du traitement de texte sur diverses applications.

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H
