EVM/Testauswertung/prozentuale_Abweichung.py
Jonathan Frei 7c2c8f1b4d Dateien hochladen nach „Testauswertung“
Ich habs noch nicht sinnvoll zusammengeführt, mach ich noch. Zuerst zusammenführen, dann Abweichung berechnen, dann umstrukturieren
Außerdem hab ich es probeweise nicht im ordner mit der original excel ausgeführt, um im Fehlerfall nicht neu berechnen zu müssen
Da es aber alles funktioniert würde ich das Programm wenn es fertig ist in den Ordner mit den excel files packen
2024-01-09 18:15:54 +00:00

58 lines
1.7 KiB
Python

import openpyxl
def lese_zwei_spalten(file_path):
# Öffne die Excel-Datei
workbook = openpyxl.load_workbook(file_path)
# Wähle das Arbeitsblatt aus
sheet = workbook['Sheet1']
# Lese die Werte der beiden Spalten aus
values_column1 = [cell.value for cell in sheet['O']][1:]
values_column2 = [cell.value for cell in sheet['Q']][1:]
# Schließe die Excel-Datei
workbook.close()
return values_column1, values_column2
def berechne_prozentuale_abweichung(liste1, liste2):
# Überprüfe, ob die Listen die gleiche Länge haben
if len(liste1) != len(liste2):
raise ValueError("Die Listen müssen die gleiche Länge haben")
# Berechne die prozentuale Abweichung zwischen den Werten
abweichungen = [((abs(float(b) - float(a)) / float(a)) * 100) if float(a) != 0 else None for a, b in zip(liste1, liste2)]
return abweichungen
def write_string_to_excel(file_path, input_string, column):
# Öffne die Excel-Datei
workbook = openpyxl.load_workbook(file_path)
# Wähle das Arbeitsblatt aus
sheet = workbook['Sheet1']
# Trage jeden Buchstaben des Strings in eine eigene Zeile ein
for i, char in enumerate(input_string, 1):
sheet.cell(row=2 + i - 1, column=column, value=char)
# Speichere die Änderungen
workbook.save(file_path)
# Schließe die Excel-Datei
workbook.close()
# Funktionsaufruf
values_col1, values_col2 = lese_zwei_spalten('Testcase_excel_dataset.xlsx')
print(values_col1)
print(values_col2)
abweichungen = berechne_prozentuale_abweichung(values_col1, values_col2)
write_string_to_excel('Testcase_excel_dataset.xlsx', abweichungen, 18)