Preencha documentos no Microsoft Word usando Python. Parte 1

Cumprimos a obrigação de obter informações sobre nossos beneficiários efetivos


Introdutório pequeno


A partir de 21 de dezembro de 2016, entraram em vigor as emendas à Lei Federal da Federação Russa “Sobre o combate à legalização (lavagem) de produtos do crime e o financiamento do terrorismo”, sobre a obrigação de uma entidade legal de divulgar informações sobre seus beneficiários efetivos. Nesse sentido, muitas empresas enviam solicitações de posse para averiguar seus beneficiários efetivos. Alguém faz pedidos em papel, alguém envia e-mails.

Em nossa opinião, a prova adequada do cumprimento da obrigação "Conheça o seu beneficiário" é a presença de uma carta no papel com uma nota sobre o envio / entrega. Idealmente, essas cartas devem ser preparadas pelo menos uma vez por ano. Se o advogado tem apenas algumas empresas, escrever cartas não é difícil. Mas, se houver mais de três dezenas de empresas, escrever cartas se transforma em uma rotina destrutiva. A questão é agravada pelo fato de os detalhes das cartas estarem mudando constantemente: os signatários saem, as empresas se registram novamente, mudam de endereço. Tudo isso deve ser levado em consideração. Como as habilidades de programação em python podem ajudar aqui?

É muito simples - seria bom ter um programa que substituísse os detalhes necessários nas cartas. Inclusive para formar cartas, sem forçar a criação de um documento após um documento manualmente. Vamos tentar.

A estrutura da letra na palavra. Módulo docxtpl do Python


Antes de escrever o código do programa, vamos ver como deve ser o modelo da carta em que colocaremos nossos dados.

O texto da carta da empresa para seu participante / acionista será aproximadamente o seguinte:



Escreveremos um programa simples que primeiro preenche um campo do nosso modelo para entender como ele funciona.

Para começar, no próprio modelo de letra do Word, em vez de um dos campos, por exemplo, um assinante, definiremos uma variável. Essa variável deve estar em inglês. idioma ou russo, mas em uma palavra.Além disso, a variável deve estar necessariamente entre colchetes duplos. Será algo parecido com isto:



O programa em si terá a seguinte aparência:

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

Primeiro, importamos um módulo para trabalhar com documentos no formato Word. Em seguida, abrimos o modelo e, no campo diretor, que seria indicado anteriormente no próprio modelo, digite o nome do diretor. No final, o documento é salvo com um novo nome.

Portanto, para preencher todos os campos no arquivo de modelo do Word, primeiro precisamos definir todos os campos de entrada no próprio modelo com colchetes {} junto com as variáveis ​​e depois escrever um programa. O código será algo como isto:

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

Na saída, ao executar o programa, receberemos um documento completo.

Você pode baixar o modelo final do Word aqui .

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


All Articles