86 lines
2.5 KiB
Python
86 lines
2.5 KiB
Python
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_() |