Senhores(as), Todos Bem? Estou Bem, mas preciso de ajuda rs.
Estou tentando criar uma automação para que me ajude no dia a dia, sou iniciante com o Python, e estou enfrentando barreiras.
Ideia: Quero fazer uma automação de MALADIRETA onde a automação leia todo o texto no doc "word", e encontre dentro dele as chaves '[]' dentro dela tera um número para sabermos do que se refere.
Exemplo: Prezado [1], estou indo para o estado de [2], e quero ir no restaurante [3]..
Preciso que ele encontre quantos '[]' tem dentro do DOC "Word", e me informe.
Depois disso, preciso que ele solicite o meu banco de dados 'Excel', onde lá contém algumas informações na planilha.
Preciso que eu selecione onde vai o que do Excel para o Word e seja salvo em PDF..
Exemplo Excel:
A | B | C |
1 Nome | Estado | Restaurante |
2 Victor | Rio de Janeiro | Restaurante01 |
3 Lucas | São Paulo | Restaurante02 |
4 Julian | Brasilia | Restaurante03 |
Exemplo do texto Salvo em PDF como deve ficar:
PDF01: Prezado Victor, estou indo para o estado de Rio de Janeiro, e quero ir no restaurante Restaurante01..
PDF02: Prezado Lucas, estou indo para o estado de São Paulo, e quero ir no restaurante Restaurante02..
PDF03: Prezado Julian, estou indo para o estado de Brasilia, e quero ir no restaurante Restaurante03..
O nome de cada PDF salvo, eu tenho que escolher a partir de qual CELULA do Excel devo salvar.
Exemplo: Pegar o nome da celula A2 em diante ou B2 em diante. e salvar uma por uma na ordem.
Conseguem me ajudar ? Fiz isso quase tudo, mas não ta como quero, e travei total rs.
Código Fonte em Anexo:
import tkinter as tk
from tkinter import filedialog
import pandas as pd
from docx import Document
import re
def contar_numeros_em_colchetes(texto):
padrão = r'\[([0-9]+)\]'
numeros_encontrados = re.findall(padrão, texto)
return len(numeros_encontrados), numeros_encontrados
def ler_docx(caminho_documento):
doc = Document(caminho_documento)
texto = ""
for paragrafo in doc.paragraphs:
texto += paragrafo.text + "\n"
return texto
def ler_excel(caminho_excel, numeros):
dados = pd.read_excel(caminho_excel)
for coluna in dados.columns:
dados[coluna] = dados[coluna].apply(lambda x: substituir_colchetes(str(x), numeros))
return dados
def substituir_colchetes(valor, numeros):
for numero in numeros:
valor = valor.replace(f"[{numero}]", numero)
return valor
def salvar_em_word(dados, caminho_original, caminho_destino):
doc_destino = Document(caminho_original)
for paragrafo in doc_destino.paragraphs:
for coluna in dados.columns:
marcador = f"[{coluna}]"
substituto = str(dados[coluna].iloc[0])
paragrafo.text = paragrafo.text.replace(marcador, substituto)
doc_destino.save(caminho_destino)
def abrir_seletor_arquivo_word():
caminho_documento = filedialog.askopenfilename(filetypes=[("Documentos DOCX", "*.docx")])
if caminho_documento:
texto_documento = ler_docx(caminho_documento)
quantidade, numeros = contar_numeros_em_colchetes(texto_documento)
resultado_label.config(text=f"Quantidade de números dentro de colchetes no Word: {quantidade}\nNúmeros encontrados: {numeros}")
abrir_seletor_arquivo_excel(numeros, caminho_documento)
def abrir_seletor_arquivo_excel(numeros, caminho_original):
caminho_excel = filedialog.askopenfilename(filetypes=[("Arquivos Excel", "*.xlsx")])
if caminho_excel:
dados = ler_excel(caminho_excel, numeros)
salvar_em_word(dados, caminho_original, "resultado_word.docx")
resultado_label.config(text=f"Documento Word salvo como resultado_word.docx")
janela = tk.Tk()
janela.title("Substituir Colchetes em Word e Salvar em Word")
selecionar_arquivo_word_button = tk.Button(janela, text="Selecionar Arquivo Word", command=abrir_seletor_arquivo_word)
resultado_label = tk.Label(janela, text="")
selecionar_arquivo_word_button.pack(pady=10)
resultado_label.pack(pady=10)
janela.mainloop()