Jump to content

Como coletar informações específicas de uma Tabela Excel e transferir para outra usando Python?


CaeduXD

Postagens Recomendadas

Preciso filtrar na tabela de origem a coluna Obra e a coluna Etapa de obra, e assim somar o valor total da coluna Total apos o filtro, exemplo: Obra Fulano, Etapa Alvenaria, soma do valor total de tudo que foi gasto com essa etapa.

Ao pegar o valor somado jogar na planilha destino esse valor em uma celula especifica, e salvar a tabela com esse valor sem perder as configurações e formatações da segunda tabela.

tbm a maneira correta de executar o QDialog para que quando seja executado corretamente apareca a mensagem com o botao OK:
 

import sys
import pandas as pd
import openpyxl
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QWidget, QDialog
from ATUALIZADOR import Ui_MainWindow
from OK import Ui_Dialog

class MainWindow(QMainWindow, Ui_MainWindow, Ui_Dialog):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.txt_orba.setFocus()
        self.tb_origem.clicked.connect(self.arq_origem)
        self.tb_destino.clicked.connect(self.arq_destino)
        self.bt_atualizar.clicked.connect(self.atualizar)  # Conexão corrigida

    def arq_origem(self):
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        self.origem, _ = QFileDialog.getOpenFileName(self, "ARQUIVO DE ORIGEM", "", "Excel Files (*.xlsx *.xls)", options=options)
        self.txt_origem.setText(self.origem)  # Exibir o caminho do arquivo

    def arq_destino(self):
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        self.destino, _ = QFileDialog.getOpenFileName(self, "ARQUIVO DE DESTINO", "", "Excel Files (*.xlsx *.xls)", options=options)
        self.txt_destino.setText(self.destino)  # Exibir o caminho do arquivo

    def atualizar(self):
        try:
            df1 = pd.read_excel(self.origem)
            df2 = pd.read_excel(self.destino)

            obra = self.txt_obra.text().upper()
            df_filtrado = df1[(df1['OBRA'] == obra) & (df1['ETAPA DA OBRA'] == 'ALVENARIA')]
            soma_total = df_filtrado['R$ TOTAL'].sum()

            df2.at[0, 'P15'] = soma_total
            df2.to_excel('tabela2.xlsx', index=False)

            # Mostrar mensagem de sucesso
            dlg = Ui_Dialog()
            dlg.exec_()

        except FileNotFoundError:
            print("Um ou mais arquivos não foram encontrados.")
        except KeyError:
            print("Uma ou mais colunas não foram encontradas.")
        except Exception as e:
            print(f"Erro inesperado: {e}")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setStyle('Fusion')
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

Sem título.jpg

Sem título2.jpg

Sem título3.jpg

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Casa do Desenvolvedor mudou o título para Como coletar informações específicas de uma Tabela Excel e transferir para outra usando Python?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...