mehrere Excel Arbeitsblätter beschreiben

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Bykl
User
Beiträge: 92
Registriert: Donnerstag 5. Oktober 2017, 17:57

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?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Ein Blick in die Dokumentation würde reichen, um die Frage zu beantworten: https://openpyxl.readthedocs.io/en/late ... eate_sheet
Bykl
User
Beiträge: 92
Registriert: Donnerstag 5. Oktober 2017, 17:57

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...
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Bykl
User
Beiträge: 92
Registriert: Donnerstag 5. Oktober 2017, 17:57

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")
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Bitte den vollständigen Quelltext zeigen und die vollständige Fehlermeldung.
Sonst können wir nur raten, was du da tust.
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten