ich bin ein absoluter Python-Neuling, der allerdings vorher mit MATLAB gearbeitet hat. Aktuell fällt es mir schwer meine "MATLAB-Brille" abzusetzen.
Ich habe nach bestem Wissen und Gewissen das Forum nach einem ähnlichen Problem durchsucht. Ich habe leider nichts gefunden, das mir helfen konnte. Es könnte natürlich auch sein, dass ich die Parallele nicht erkannt habe.
Nun zu meinem Vorhaben und Problem.
Ich habe folgende Excel-Tabelle:

In Spalte P wird der Datentyp beschrieben. Ich möchte nun ein Skript erstellen, dass die Zeilen aus der Tabelle rauskopiert, die in Spalte "P" den Datentyp "boolean" enthalten. Diese sollen dann in eine neue Tabelle geschrieben werden.
Das klappt bisher ganz gut. Mein Problem ist, dass ich die Daten in einen bestimmten Bereich schreiben möchte, was leider nicht funktioniert. Die Daten werden jedes mal in ab Zelle "A1" eingefügt.
Code: Alles auswählen
from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font
wb_testspec = load_workbook('C:/....')
ws_testspec = wb_testspec.active
wb_new = Workbook()
ws_new = wb_new.active
ws_new.title = "Test"
ws_new_2 = wb_new.create_sheet("boolean")
for row in ws_testspec.iter_rows():
if row[15].value == "boolean": # filter on first column with value 16
ws_new_2.append((cell.value for cell in row))
wb_new.save('C:/...')
Im Netz habe ich einige Beispiele gefunden, wo man bestimmte Zellen ansteuern kann. Allerdings wurden in jedem Beispiel nur Strings in die Zellen geladen. Und ich habe leider nicht verstanden wie ich z.B. folgendes Beispiel so umwandle, dass es meinen Erwartungen entspricht. In dem Beispiel wird 'hello' in "A7", 'world' in "B7", 'this' in "A8", 'is' in "B8", 'another' in "C8"' und 'line' in "D8" geschrieben. Das bedeutet, dass der Code es schafft die Wörter gezielt in bestimmte Zellen zu schreiben. Und das selbe möchte ich nun für meine Tabelle haben. Es muss ja nicht unbedingt dieses Beispiel sein. Vielleicht habt ihr ja einen Lösungsvorschlag für meinen ersten Code.
Code: Alles auswählen
def Output(message):
wb_testspec = load_workbook('C:/..../leer.xlsx')
ws_testspec = wb_testspec.active
ws_testspec.title = 'Quotation'
Row_size = len(message)
for row, row_entries in enumerate(message, start=7):
for column, value in enumerate(row_entries, start=1):
ws_testspec.cell(column=column, row=row, value=value)
wb_testspec.save('Quotation.xlsx')
Output([['hello', 'world'], ['this', 'is', 'another', 'line']])
VG
Krystek