43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
|
import openpyxl
|
||
|
|
||
|
def kopiere_header(input_sheet, output_sheet):
|
||
|
# Kopiere den Header manuell in das Ausgabe-Arbeitsblatt
|
||
|
for row in input_sheet.iter_rows(min_row=1, max_row=1, values_only=True):
|
||
|
output_sheet.append(row)
|
||
|
|
||
|
def sortiere_excel_tabelle(input_file_path, output_file_path, ):
|
||
|
# Öffne die Eingabe-Excel-Datei
|
||
|
input_workbook = openpyxl.load_workbook(input_file_path)
|
||
|
input_sheet = input_workbook['Sheet1']
|
||
|
|
||
|
# Erstelle eine neue Excel-Tabelle für die sortierten Zeilen
|
||
|
output_workbook = openpyxl.Workbook()
|
||
|
output_sheet = output_workbook.active
|
||
|
|
||
|
# Kopiere den Header ins Ausgabe-Arbeitsblatt
|
||
|
kopiere_header(input_sheet, output_sheet)
|
||
|
|
||
|
# Lese die Daten-Zeilen aus der Tabelle
|
||
|
data_rows = list(input_sheet.iter_rows(min_row=2, values_only=True))
|
||
|
|
||
|
# Sortiere die Daten-Zeilen nach dem Wert der angegebenen Spalte
|
||
|
sorted_data_rows = sorted(data_rows, key=lambda x: x[18 - 1]) # -1, da Listenindizes bei 0 beginnen
|
||
|
|
||
|
# Schreibe die sortierten Daten-Zeilen in die neue Tabelle
|
||
|
for row in sorted_data_rows:
|
||
|
output_sheet.append(row)
|
||
|
|
||
|
# Speichere die Änderungen in der neuen Excel-Datei
|
||
|
output_workbook.save(output_file_path)
|
||
|
|
||
|
# Schließe die Excel-Dateien
|
||
|
input_workbook.close()
|
||
|
output_workbook.close()
|
||
|
|
||
|
|
||
|
# Beispielaufruf
|
||
|
input_file_path = 'Testcase_excel_dataset.xlsx'
|
||
|
output_file_path = 'Testcases_nach_Genauigkeit.xlsx'
|
||
|
|
||
|
sortiere_excel_tabelle(input_file_path, output_file_path)
|