Ich kann meine bereits vorhandene Arbeitsmappe öffnen, aber ich sehe keine Möglichkeit, bereits vorhandene Arbeitsblätter in dieser Arbeitsmappe zu öffnen. Gibt es eine Möglichkeit, dies zu tun?xlsxwriter: Gibt es eine Möglichkeit, ein vorhandenes Arbeitsblatt in meiner Arbeitsmappe zu öffnen?
xlsxwriter: Gibt es eine Möglichkeit, ein vorhandenes Arbeitsblatt in meiner Arbeitsmappe zu öffnen?
Antwort
Sie können keine an eine vorhandene xlsx-Datei mit xlsxwriter
anhängen.
Es gibt ein Modul mit der Bezeichnung openpyxl, mit dem Sie Excel-Dateien lesen und schreiben können, aber ich bin mir sicher, dass die Methode das Auslesen aus der Excel-Datei erfordert und alle Informationen (Datenbank oder Arrays) speichert. und dann umschreiben, wenn Sie workbook.close()
aufrufen, die dann alle Informationen in Ihre xlsx-Datei schreiben wird.
In ähnlicher Weise können Sie eine eigene Methode verwenden, um xlsx-Dokumente zu "anhängen". Ich musste vor kurzem an eine xlsx-Datei anhängen, da ich viele verschiedene Tests hatte, bei denen ich GPS-Daten in ein Hauptarbeitsblatt eingab, und dann jedes Mal, wenn ein Test gestartet wurde, ein neues Blatt anhängen musste. Der einzige Weg, ich um dieses ohne openpyxl bekommen konnte, war die Excel-Datei mit xlrd und führen Sie durch die Reihen und Spalten zu lesen ...
heißt
cells = []
for row in range(sheet.nrows):
cells.append([])
for col in range(sheet.ncols):
cells[row].append(workbook.cell(row, col).value)
Sie haben keine Arrays benötigen, though. Zum Beispiel funktioniert die völlig in Ordnung:
import xlrd
import xlsxwriter
from os.path import expanduser
home = expanduser("~")
# this writes test data to an excel file
wb = xlsxwriter.Workbook("{}/Desktop/test.xlsx".format(home))
sheet1 = wb.add_worksheet()
for row in range(10):
for col in range(20):
sheet1.write(row, col, "test ({}, {})".format(row, col))
wb.close()
# open the file for reading
wbRD = xlrd.open_workbook("{}/Desktop/test.xlsx".format(home))
sheets = wbRD.sheets()
# open the same file for writing (just don't write yet)
wb = xlsxwriter.Workbook("{}/Desktop/test.xlsx".format(home))
# run through the sheets and store sheets in workbook
# this still doesn't write to the file yet
for sheet in sheets: # write data from old file
newSheet = wb.add_worksheet(sheet.name)
for row in range(sheet.nrows):
for col in range(sheet.ncols):
newSheet.write(row, col, sheet.cell(row, col).value)
for row in range(10, 20): # write NEW data
for col in range(20):
newSheet.write(row, col, "test ({}, {})".format(row, col))
wb.close() # THIS writes
Allerdings fand ich, dass es leichter war, die Daten und speichert in einen 2-dimensionalen Array zu lesen, weil ich die Daten manipuliert und empfange Eingang immer und immer wieder und wollte nicht in die Excel-Datei schreiben, bis der Test zu Ende war (was Sie genauso gut mit xlsxwriter tun könnten, da dies wahrscheinlich so ist, bis Sie .close()
aufrufen).
I wouldn wirklich sage nicht "extrem komplexe Struktur". Die Struktur ist nur ein Zipfile-Archiv von Blättern, in denen jedes Blatt eine XML-Datei mit dem Zellinhalt ist. Es ist ziemlich einfach zu erreichen, lesen und bearbeiten, nur XlsxWriter beabsichtigt, ein ** Schriftsteller **. Kein ** Leser **. –
@AlexanderHuszagh danke! – dylnmc
Super, eine ausgezeichnete Antwort jetzt nach den Änderungen. +1. –
- 1. gibt es eine Möglichkeit, mstest in meiner Anwendung zu verwenden
- 2. Gibt es eine Möglichkeit, Pakete aus Ihrem aktuellen Projekt in ein Arbeitsblatt zu importieren
- 3. Gibt es eine Möglichkeit zu wissen, ob Benutzer Mail öffnen?
- 4. Gibt es eine Möglichkeit, Strg + N zu überschreiben, um ein neues Fenster in Chrome zu öffnen?
- 5. Gibt es eine Möglichkeit, die Unterklasse meiner Klasse zu verbieten?
- 6. Gibt es eine Möglichkeit, den JFace ElementTreeSelectionDialog ungefaltet zu öffnen?
- 7. Gibt es eine Möglichkeit, Formularantwort zu ignorieren?
- 8. Gibt es eine Möglichkeit, Inhalte aus meiner App zu senden, die nicht aus meiner App stammen?
- 9. Gibt es eine Möglichkeit, ein Array in Klasseneigenschaften zu konvertieren?
- 10. gibt es eine Möglichkeit, ein Muster in .dockerignore zu negieren?
- 11. Hinzufügen eines neuen Arbeitsblatts zur Arbeitsmappe in xlsxwriter
- 12. Wie kann ich eine Arbeitsmappe in einer anderen Arbeitsmappe referenzieren, um die Datei automatisch zu öffnen?
- 13. Blatt zu erstellter Arbeitsmappe von einer anderen Arbeitsmappe hinzufügen
- 14. Gibt es eine Möglichkeit, Webkonsolenfehler zu erkennen?
- 15. Gibt es eine Möglichkeit, Datenbanktransaktionen zu beschleunigen?
- 16. Gibt es eine Möglichkeit, django.db.connection.queries zu löschen?
- 17. Gibt es eine Möglichkeit, onPanResponderMove zu verwalten?
- 18. Gibt es eine Möglichkeit, eine Claims Principal in meiner ASP.NET MVC-Webanwendung zu verspotten?
- 19. Gibt es eine Möglichkeit, Kovarianz zu deklarieren?
- 20. Gibt es eine Möglichkeit, AMDPlugin zu deaktivieren?
- 21. Gibt es eine Möglichkeit, Creeps zu löschen?
- 22. Gibt es eine Möglichkeit, ein Apache ANT-Ziel zu verallgemeinern?
- 23. Gibt es eine Möglichkeit, über ein Wörterbuch zu iterieren?
- 24. Gibt es eine Möglichkeit, .PRI-Dateien zu öffnen/zu lesen? (Paketressourcenindex - verwendet in Windows Store Apps)
- 25. gibt es eine bessere Möglichkeit, ein Diktat zu bereinigen?
- 26. Gibt es eine gute Möglichkeit, ein Gtk-Widget zu kopieren?
- 27. Gibt es eine Möglichkeit, ein Etikett zu deaktivieren?
- 28. Gibt es eine einfache Möglichkeit, ein ASP.NET-Formular zu löschen?
- 29. Gibt es eine einfachere Möglichkeit, ein rekursives Fn zu memozieren?
- 30. Gibt es eine Möglichkeit, Duplikate zu vermeiden?
[xlsxwriter] (https://pypi.python.org/pypi/XlsxWriter) Bibliothek ist zum Schreiben von Excel-Dateien - es kann sie nicht lesen. – alecxe
sehen diese http://stackoverflow.com/questions/18849535/how-to-write-update-data-into-cells-of-existing-xlsx-workbook-using-xlsxwriter-i – shellbye