openpyxl Aktive Blatt Set
Die Dokumentation zeigt ein Workbook-Objekt hat eine active
Eigenschaft
@property
def active(self):
"""Get the currently active sheet"""
return self._sheets[self._active_sheet_index]
@active.setter
def active(self, value):
"""Set the active sheet"""
self._active_sheet_index = value
Wenn wb = openpyxl.Workbook()
aufrufen wb.active
geben Sie den Titel des Standard-erste Arbeitsblatt Sheet
.
Sagen wir, ich erstelle ein weiteres Blatt ws1 = wb.create_sheet('another sheet')
, wie ich "set" dieses das aktive Blatt?
Die Dokumentation zeigt, gibt es eine aktive "setter" auch "aktiv" genannt. Es braucht ein zusätzliches argument, eine Ganzzahl index-Wert.
Wie kommen wb.active(1)
funktioniert nicht? Bin ich nicht, das aufrufen der Funktion mit
- Mögliche Duplikate von Python openpyxl wählen Sie Einzelblatt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Ansatz unterscheidet sich von der Einstellung aktive Blatt in der Arbeitsmappe durch sheetname. Es gibt ähnliche Antworten (openpyxl bekommen Blatt mit Namen
zum Beispiel umfasst das öffnen einer geschlossenen Datei) und die andere nicht haben detailliert genug für mich zu verstehen, auf diese Funktion.
Den Bearbeiten einer Arbeitsmappe im Speicher tutorial ist der Ort, um zu starten und unter die Antwort ich habe dieses tutorial verwendet, um zu demonstrieren, es ist kein aktives Blatt, name, eigentlich ist er das Blatt an der aktiven index. Ein anderes Blatt wird aktiv, wenn das hinzufügen oder löschen eines Blattes ändert sich das Blatt an der index-position.
Anfangs dachte ich
.create_sheet
gemacht, das Blatt aktiv ist, aber dann merkte ich, hatte ich nur angelegt, das Blatt das aktive Blatt index, war 0. Der index kann eingestellt werden auf einen Wert größer als die Anzahl der Blätter und die Dokumente enthalten auch einen Hinweis, dass "Wenn das Blatt aktiv ist versteckt Rückkehr die nächste sichtbare Blatt-oder Keiner".verbose kurze Antwort
Fühlen Sie sich frei, um diese zu verbessern, zu beantworten.
Demonstration
https://bitbucket.org/openpyxl/openpyxl/issues/1033/active-sheet-index-not-updated-on-sheet
Ich bin nicht vertraut mit der ganzen Getter und setter Sache. Allerdings dachte ich, die Antwort. Es ist schrecklich verwirrend für mich jetzt, warum es funktioniert auf diese Weise - weil es sieht nicht wie ein typischer Aufruf der Funktion. In jedem Fall, die "setter", würden Sie schreiben
wb.active = 1
die, äh, "frisst" der 1 =) und ändert das aktive Blatt. Nur zu schreiben, dieses denken, mindestens eine weitere person bitten können, etwas ähnliches.
Referenz, ein weiterer nützlicher Weg, es zu tun - besonders, wenn Sie anrufen möchten das Blatt durch seinen Namen:
sollten Sie jetzt dem Blatt Ihrer Wahl, aber der Vorteil hier ist, dass Sie in der Lage waren zu nennen, das Blatt nach name statt nach Nummer. Dieser Punkt ist der Grund, dass ich diese zusätzliche Antwort.