from PyQt5.QtWidgets import QApplication, QDialog, QFileDialog from PyQt5.uic import loadUi import sys, os, re from pathlib import Path import pandas as pd from icecream import ic import numpy as np import json import logging class A2CSV(QDialog): # erbt von QDialog def __init__(self): super().__init__() loadUi("AM2CSV.ui", self) self.pB_open.clicked.connect(self.open_file_dialog) self.filename = None self.onlyfilename = None self.path = None self.vte = None self.cmdb = None self.gg = self.rB_gg self.gg.toggled.connect(self.radio_button_activated) self.erw = self.rB_erweiterungen self.erw.toggled.connect(self.radio_button_activated) self.vte_gg = None self.cmdb_gg = None self.jdata = None self.objecttypes: list = [] self.read_json() self.objecttypes = self.jdata["objecttypes"] def read_json(self): with open("CMDB_vars.json", "r") as file: self.jdata = json.load(file) ic(self.jdata) def open_file_dialog(self): # Nur xlsb self.filename, _ = QFileDialog.getOpenFileName(self,"Aufbaumaster","\\Volumes\\Daten01\\Documents\\toCSV","Excel (*.xlsb)") if self.filename: self.path = Path(self.filename) self.onlyfilename = os.path.basename(self.filename) self.lb_selected_aufbaumaster.setText(self.onlyfilename) self.collect_data() def collect_data(self): # Reiter VTE und CMDB # VTE "nur" für die Config-ID self.vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',usecols=['Hostname', 'Gruppierung', 'CONFIG-ID', 'CMDB Status'], engine='pyxlsb') self.cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb') ic(self.vte) ic(self.cmdb) def collect_gg(self): # Nach relevanten Spalten filtern Grundgeraete # Sheet VTE self.vte_gg = self.vte[self.vte['Gruppierung'] == 'Grundgerät'] # Sheet CMDB self.cmdb_gg = self.cmdb[self.cmdb['Filter'] == 'Grundgerät'] def radio_button_activated(self): if self.gg.isChecked(): self.collect_gg() ic(self.vte_gg) elif self.erw.isChecked(): ic("erw") if __name__ == "__main__": app = QApplication(sys.argv) ui = A2CSV() ui.show() app.exec_()