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
58 lines
1.7 KiB
Python
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)
|
|
|