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)
|
||
|
|