You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

prozentuale_Abweichung.py 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import openpyxl
  2. def lese_zwei_spalten(file_path):
  3. # Öffne die Excel-Datei
  4. workbook = openpyxl.load_workbook(file_path)
  5. # Wähle das Arbeitsblatt aus
  6. sheet = workbook['Sheet1']
  7. # Lese die Werte der beiden Spalten aus
  8. values_column1 = [cell.value for cell in sheet['O']][1:]
  9. values_column2 = [cell.value for cell in sheet['Q']][1:]
  10. # Schließe die Excel-Datei
  11. workbook.close()
  12. return values_column1, values_column2
  13. def berechne_prozentuale_abweichung(liste1, liste2):
  14. # Überprüfe, ob die Listen die gleiche Länge haben
  15. if len(liste1) != len(liste2):
  16. raise ValueError("Die Listen müssen die gleiche Länge haben")
  17. # Berechne die prozentuale Abweichung zwischen den Werten
  18. abweichungen = [((abs(float(b) - float(a)) / float(a)) * 100) if float(a) != 0 else None for a, b in zip(liste1, liste2)]
  19. return abweichungen
  20. def write_string_to_excel(file_path, input_string, column):
  21. # Öffne die Excel-Datei
  22. workbook = openpyxl.load_workbook(file_path)
  23. # Wähle das Arbeitsblatt aus
  24. sheet = workbook['Sheet1']
  25. # Trage jeden Buchstaben des Strings in eine eigene Zeile ein
  26. for i, char in enumerate(input_string, 1):
  27. sheet.cell(row=2 + i - 1, column=column, value=char)
  28. # Speichere die Änderungen
  29. workbook.save(file_path)
  30. # Schließe die Excel-Datei
  31. workbook.close()
  32. # Funktionsaufruf
  33. values_col1, values_col2 = lese_zwei_spalten('Testcase_excel_dataset.xlsx')
  34. print(values_col1)
  35. print(values_col2)
  36. abweichungen = berechne_prozentuale_abweichung(values_col1, values_col2)
  37. write_string_to_excel('Testcase_excel_dataset.xlsx', abweichungen, 18)