Seite 1 von 1
mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 13:14
von Bykl
Ich kann jetzt eine Excel-Datei beschreiben mit in Python generierten Daten.
jetzt möchte ich zwei Arbeitsblätter einer Datei mit verschiedenen Daten beschreiben aus einem Programm heraus.
Ich weiss aber nicht, wie ich die beiden Arbeitsblätter anspreche:
bisher mach ich es so:
Code: Alles auswählen
wb = openpyxl.Workbook() # öffnen
ws = wb.active
.
.
.
ws.cell(1,1).value =8 # er schreibt eine 8 in die Zelle a1 Arbeitsblatt 1
wb.save("/Users/Desktop/ProjTaktik/Exceldaten/Dateiname.xlsx")
# speichern
Wie mache ich das mit zwei Arbeitsblättern?
Re: mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 13:17
von Sirius3
Ein Blick in die Dokumentation würde reichen, um die Frage zu beantworten:
https://openpyxl.readthedocs.io/en/late ... eate_sheet
Re: mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 14:13
von Bykl
Hallo Sirius, so weit bin ich nicht mit dem lesen.
ich brauche ein praktisches Beispiel:
Da steht:
ws = wb.active # 1. Arbeistblatt aktivieren
Und wie aktiviert man das 2. Arbeitsblatt?
Das steht : create_sheet(title=None, index=None)
Das ist aber kein Befehl. Jedenfalls funktioniert er in Python 3.8 nicht....
ich hab: create_sheets("tab1",1)
geschrieben...
Re: mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 14:17
von Sirius3
In Python gibt es ja auch keine Befehle, sondern Anweisungen, und das können Funktionsaufrufe sein, oder Methodenaufrufe, für die man eine Instanz der richtigen Klasse braucht.
Wenn Du noch nicht weißt, was Methodenaufrufe sind, dann mußt Du dieses Kapitel in Deinem Lehrbuch noch einmal durcharbeiten.
Re: mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 20:11
von Bykl
ws3.cell(x,1)=20
Er sagt:
"can't assign to function call"
Das ist jetzt bei Kopf. ws1 und ws2 Funktionieren...
ws1 = wb.active
ws1.title = "Folgen"
ws2 = wb.create_sheet(title="Lochmasken")
ws3 = wb.create_sheet(title="Grundkonstellate")
Re: mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 20:15
von sparrow
Bitte den vollständigen Quelltext zeigen und die vollständige Fehlermeldung.
Sonst können wir nur raten, was du da tust.
Re: mehrere Excel Arbeitsblätter beschreiben
Verfasst: Dienstag 1. November 2022, 20:28
von __blackjack__
@Bykl: Das ist soweit erwartbar, denn was soll denn das bedeuten? Da steht links vom ``=`` ein Ausdruck der zu einem Wert ausgewertet wird und dem kann man nichts zuweisen. Das ist als würde man ``"Hallo" = 3`` schreiben, oder weil die konkrete Fehlermeldung ja von einem Funktionsaufruf spricht ``sin(0.5) = 42``, das gibt die gleiche Ausnahme:
Code: Alles auswählen
In [89]: import math
In [90]: math.sin(0.5) = 42
Input In [90]
math.sin(0.5) = 42
^
SyntaxError: cannot assign to function call
Man kann nur Namen oder Attributen Werte zuweisen, aber nicht anderen Werten. Das macht allgemein keinen Sinn. Es gibt Programmiersprachen da ist die Zuweisung ein Operator den man überladen kann, dann entscheidet das Objekt/der Wert dem etwas zugewiesen wird, was das konkret bedeuten soll. In Python kann man die Zuweisung aber nicht überladen.