Remplissez des documents dans Microsoft Word à l'aide de Python. Partie 1

Nous remplissons l'obligation d'obtenir des informations sur nos bénéficiaires effectifs


Petite introduction


À compter du 21 décembre 2016, des modifications à la loi fédérale de la Fédération de Russie sur la lutte contre la légalisation (blanchiment) des produits du crime et le financement du terrorisme, concernant l'obligation pour une personne morale de divulguer des informations sur ses ayants droit économiques, sont entrées en vigueur. À cet égard, de nombreuses entreprises envoient des demandes de tenure afin de connaître leurs bénéficiaires effectifs. Quelqu'un fait des demandes sur papier, quelqu'un envoie des courriels.

À notre avis, la preuve appropriée de l'accomplissement de l'obligation «Connaissez votre propriétaire bénéficiaire» est la présence d'une lettre sur papier avec une note sur l'envoi / la livraison. Idéalement, ces lettres devraient être préparées au moins une fois par an. Si l'avocat ne compte que quelques sociétés, la rédaction de lettres n'est pas difficile. Mais, s'il y a plus de 3 dizaines d'entreprises, écrire des lettres devient une routine destructrice. La question est aggravée par le fait que les détails des lettres changent constamment: les signataires quittent, les entreprises se réenregistrent, changent d'adresse. Tout cela doit être pris en compte. Comment les compétences en programmation python peuvent-elles aider ici?

C'est très simple - ce serait bien d'avoir un programme qui lui-même remplacera les détails nécessaires dans les lettres. Y compris pour former des lettres elles-mêmes, sans forcer à créer un document après un document manuellement. Essayons.

La structure de la lettre dans word. Module docxtpl Python


Avant d'écrire le code du programme, voyons à quoi devrait ressembler le modèle de lettre dans lequel nous placerons nos données.

Le texte de la lettre de la société à son participant / actionnaire sera approximativement le suivant:



Nous allons écrire un programme simple qui remplit d'abord un champ dans notre modèle pour comprendre comment cela fonctionne.

Pour commencer, dans le modèle de lettre Word lui-même, au lieu d'un des champs, par exemple, un signataire, nous allons définir une variable. Cette variable doit être en anglais ou en anglais. ou en russe, mais en un mot. De plus, la variable doit obligatoirement être placée entre doubles accolades. Cela ressemblera à ceci:



Le programme lui-même ressemblera à ceci:

from docxtpl import DocxTemplate doc = DocxTemplate(".docx") context = { 'director' : ".."} doc.render(context) doc.save("-final.docx") 

Tout d'abord, nous importons un module pour travailler avec des documents au format Word. Ensuite, nous ouvrons le modèle, et dans le champ directeur, qui aurait été indiqué précédemment dans le modèle lui-même, entrez le nom du directeur. À la fin, le document est enregistré sous un nouveau nom.

Ainsi, afin de remplir tous les champs du fichier de modèle Word, nous devons d'abord définir tous les champs d'entrée dans le modèle lui-même avec des crochets {} avec les variables, puis écrire un programme. Le code ressemblera à ceci:

 from docxtpl import DocxTemplate doc = DocxTemplate(".docx") context = { 'emitent' : ' ', 'address1' : '. , . , . 0', '': ' ', '_': '. , . , . 0', 'director': '.. '} doc.render(context) doc.save("-final.docx") 

A la sortie, lors de l'exécution du programme, nous recevrons un document complété complété.

Vous pouvez télécharger le modèle Word terminé ici .

Source: https://habr.com/ru/post/fr456534/


All Articles