Untitled

mail@pastecode.io avatar
unknown
python
a month ago
3.2 kB
1
Indexable
Never
import os
import pyperclip
import time
from openpyxl import Workbook, load_workbook
from openpyxl.styles import NamedStyle

def criar_pasta_na_area_de_trabalho(nome_pasta):
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    folder_path = os.path.join(desktop_path, nome_pasta)
    
    if not os.path.exists(folder_path):
        os.makedirs(folder_path)
        print(f"Pasta '{nome_pasta}' criada na área de trabalho.")
    else:
        print(f"A pasta '{nome_pasta}' já existe na área de trabalho.")

    return folder_path

def salvar_no_excel(conteudo, caminho_excel):
    try:
        # Tentar abrir o arquivo Excel existente ou criar um novo
        if os.path.exists(caminho_excel):
            workbook = load_workbook(caminho_excel)
            sheet = workbook.active
            print("Arquivo Excel existente carregado.")
        else:
            workbook = Workbook()
            sheet = workbook.active
            print("Novo arquivo Excel criado.")

        # Define o estilo de moeda
        moeda_style = NamedStyle(name="moeda_style", number_format='"R$" #,##0.00')

        ultima_linha = sheet.max_row + 1

        for linha in conteudo:
            try:
                valor = float(linha.strip())
                cell = sheet.cell(row=ultima_linha, column=1)
                cell.value = valor
                cell.style = moeda_style
                ultima_linha += 1
            except ValueError:
                print(f"Conteúdo não numérico ignorado: {linha.strip()}")

        # Aplicar o estilo de moeda a todas as células na coluna A
        for row in sheet.iter_rows(min_col=1, max_col=1, min_row=2, max_row=sheet.max_row):
            for cell in row:
                cell.style = moeda_style

        # Salvar diretamente no arquivo Excel
        workbook.save(caminho_excel)
        print(f"Conteúdo atualizado no arquivo Excel: {caminho_excel}")

    except PermissionError as e:
        print(f"Erro ao salvar no Excel (PermissionError): {e}")
    except Exception as e:
        print(f"Erro inesperado ao salvar no Excel: {e}")

def copiar_para_area_de_transferencia():
    conteudos_copiados = set()
    while True:
        time.sleep(0.5)  # Intervalo reduzido para maior rapidez
        conteudo_copiado = pyperclip.paste()

        if conteudo_copiado and conteudo_copiado not in conteudos_copiados:
            conteudos_copiados.add(conteudo_copiado)
            print(f"Conteúdo copiado: {conteudo_copiado}")
            yield conteudo_copiado

def main():
    nome_pasta = "NovaPasta"
    caminho_pasta = criar_pasta_na_area_de_trabalho(nome_pasta)  # Criar pasta na área de trabalho
    caminho_excel = os.path.join(caminho_pasta, "dados.xlsx")

    copiador = copiar_para_area_de_transferencia()

    print("Copie o conteúdo para a área de transferência. O script irá salvar automaticamente no Excel.")

    try:
        for conteudo in copiador:
            salvar_no_excel([conteudo], caminho_excel)
    except KeyboardInterrupt:
        print("Execução interrompida pelo usuário.")

if __name__ == "__main__":
    main()
Leave a Comment