Ich kann keine Beispiele finden, wo xlwt verwendet wird, um in vorhandene Dateien zu schreiben. Ich habe eine vorhandene xls-Datei, die ich schreiben muss. Wenn ich xlrd verwende, um die Datei zu lesen, kann ich nicht herausfinden, wie man den Typ "Book", der in ein xlwt.Workbook zurückgegeben wird, transformiert. Ich würde mich freuen, wenn mir jemand ein Beispiel geben könnte.Schreiben in vorhandene Arbeitsmappe mit xlwt
Antwort
I am unable to find examples where xlwt is used to write into existing files.
Es gibt keine Beispiele. Es ist nicht möglich. Nicht mit xlwt, noch mit irgendeiner anderen Software. Die XLS-Dateistruktur ist kompliziert und verhält sich nicht wie eine Datenbank, an die Sie Zeilen in einer Tabelle Ihrer Wahl anhängen können.
Egal welche Software Sie verwenden, müssen Sie wie ein Benutzer mit einer Kopie von Excel und einer Tastatur machen: (1) "Öffnen Sie die Datei" dh laden Sie den Inhalt in den Speicher (2) manipulieren Sie die In-Memory-Informationen (3) " Speichern "(wodurch die vorhandene Datei weggeblasen und durch eine neue Datei ersetzt wird) oder" Speichern unter "(die eine neue Datei schreibt und die vorhandene Datei unverändert lässt).
I told you this etwa 12 Stunden, aber hier ist es wieder soweit:
Besuche this summary site.
Points of Interest:
xlutils Paket
Tutorial auf xlrd, xlwt und xlutils ... enthält Beispiele
google-Gruppe/Mailing-Liste für Fragen wie diese zu stellen (hilft, zuerst das Tutorial durchgearbeitet zu haben)
Sie benötigen xlutils.copy
. so etwas wie dieses versuchen:
from xlutils.copy import copy
w = copy('book1.xls')
w.get_sheet(0).write(0,0,"foo")
w.save('book2.xls')
Beachten Sie nicht Zellen standardmäßig in this question wie bereits erwähnt überschreiben können.
Hier ist ein Beispielcode, den ich kürzlich verwendet habe, um genau das zu tun.
Es öffnet eine Arbeitsmappe, geht die Zeilen nach unten, wenn eine Bedingung erfüllt ist, schreibt es einige Daten in der Zeile. Schließlich speichert es die geänderte Datei.
from xlutils.copy import copy # http://pypi.python.org/pypi/xlutils
from xlrd import open_workbook # http://pypi.python.org/pypi/xlrd
from xlwt import easyxf # http://pypi.python.org/pypi/xlwt
START_ROW = 297 # 0 based (subtract 1 from excel row number)
col_age_november = 1
col_summer1 = 2
col_fall1 = 3
rb = open_workbook(file_path,formatting_info=True)
r_sheet = rb.sheet_by_index(0) # read only copy to introspect the file
wb = copy(rb) # a writable copy (I can't read values out of this, only write to it)
w_sheet = wb.get_sheet(0) # the sheet to write to within the writable copy
for row_index in range(START_ROW, r_sheet.nrows):
age_nov = r_sheet.cell(row_index, col_age_november).value
if age_nov == 3:
#If 3, then Combo I 3-4 year old for both summer1 and fall1
w_sheet.write(row_index, col_summer1, 'Combo I 3-4 year old')
w_sheet.write(row_index, col_fall1, 'Combo I 3-4 year old')
wb.save(file_path + '.out' + os.path.splitext(file_path)[-1])
sollte dies die angenommene Antwort gewesen sein – chefsmart
Danke. Dies ist eine sehr hilfreiche Antwort. – Jubbles
@chefsmart Yup, sollte es gewesen sein. Greg antwortete auch ohne einen Schwanz zu haben. +1 – RaytheonLiszt
Das Codebeispiel ist genau das:
from xlutils.copy import copy
from xlrd import *
w = copy(open_workbook('book1.xls'))
w.get_sheet(0).write(0,0,"foo")
w.save('book2.xls')
Sie werden book1.xls erstellen müssen zu testen, aber Sie bekommen die Idee.
Ich hatte das gleiche Problem. Mein Kunde bestellte mir Python 3.4-Skript, das XLS (nicht XLSX) Excel-Dateien aktualisiert.
Das 1. Paket xlrd wurde von "pip install" ohne Probleme in meinem Python Home installiert.
Die zweite xlwt musste "pip install xlwt-future" sagen, um kompatibel zu sein.
der 3. ein xlutils hat keine Unterstützung für Python 3, aber ich es ein wenig angepasst und jetzt funktioniert es zumindest für Dummy-Skript:
#!C:\Python343\python
from xlutils.copy import copy # http://pypi.python.org/pypi/xlutils
from xlrd import open_workbook # http://pypi.python.org/pypi/xlrd
from xlwt import easyxf # http://pypi.python.org/pypi/xlwt
file_path = 'C:\Dev\Test_upd.xls'
rb = open_workbook('C:\Dev\Test.xls',formatting_info=True)
r_sheet = rb.sheet_by_index(0) # read only copy to introspect the file
wb = copy(rb) # a writable copy (I can't read values out of this, only write to it)
w_sheet = wb.get_sheet(0) # the sheet to write to within the writable copy
w_sheet.write(1, 1, 'Value')
wb.save(file_path)
ich die Datei hier angehängt: http://ifolder.su/43507580
Schreiben Sie an [email protected], wenn es abgelaufen ist.
S.S .: Einige Funktionen werden im Dummy-Beispiel nicht aufgerufen, also werden sie vielleicht auch für eine Anpassung benötigt. Wer es machen will, behebt Ausnahmen einzeln mit einer Google-Hilfe. Es ist nicht eine sehr schwierige Aufgabe, weil der Paketcode klein ist ...
I
# -*- coding: utf-8 -*-
import openpyxl
file = 'sample.xlsx'
wb = openpyxl.load_workbook(filename=file)
# Seleciono la Hoja
ws = wb.get_sheet_by_name('Hoja1')
# Valores a Insertar
ws['A3'] = 42
ws['A4'] = 142
# Escribirmos en el Fichero
wb.save(file)
Obwohl dieser Code das Problem lösen könnte, sollten Sie immer erklären, was es tut und warum es hilft. – BDL
- 1. Apache-POI: Ich kann nicht in eine vorhandene Arbeitsmappe schreiben
- 2. Python - Schreiben Listenwerte in xlwt
- 3. Schreiben xlwt Daten mit Excel 'Datum' Format
- 4. Excel VBA Spalt vorhandene Arbeitsmappe
- 5. Python Anhang Excel Blatt aus einer anderen Arbeitsmappe xlwt
- 6. xlwt schreiben Blatt on the fly excel
- 7. NPOI - Schreiben in Datei korrumpiert .xlsx Arbeitsmappe
- 8. Python XLWT: Excel generiert von Python xlwt enthält fehlenden Wert
- 9. langen Text in Excel-Arbeitsmappe mit Interop-Würfe Fehler schreiben?
- 10. Wie Hintergrundfarbe von Excel-Zelle mit Python Xlwt-Bibliothek ändern?
- 11. Master-Arbeitsmappe mit einer anderen Arbeitsmappe aktualisieren
- 12. unterstützt xlwt xlsx Format
- 13. Python xlwt: mit easyxf zum Stilisieren von Zellen beim Schreiben von Bug
- 14. XLWT mehrere Stile
- 15. Schreiben in XML mit Datensätzen, ohne vorhandene Daten zu überschreiben
- 16. org.apache.xmlbeans.impl.values.XmlValueDisconnectedException beim zweimaligen Schreiben der Arbeitsmappe
- 17. Dynamodb Batch schreiben Updates vorhandene Artikel
- 18. Excel Warnung Eröffnungsdatei mit xlwt erstellt: Dateifehler
- 19. Wie schreibe ich eine Zelle mit mehreren Spalten in xlwt?
- 20. gemischte Daten aus einer CSV-Datei in eine .xls mit xlwt schreiben - wie Zahlen formatieren?
- 21. Bedingte Formatierung xlwt
- 22. bearbeiten bestehende Excel-Arbeitsmappen und Blätter mit xlrd und xlwt
- 23. xlwt kann IF-Anweisung in Formel
- 24. Python XLWT justieren Spaltenbreiten
- 25. Schreiben von Daten aus einem DF in eine Excel-Arbeitsmappe, die bereits über andere Arbeitsblätter verfügt
- 26. python xlwt versucht, das vorhandene Blatt zu überschreiben, anstatt ein neues Blatt zu erstellen
- 27. Python XLWT Versuch Zelle Abhilfe
- 28. Python Installation xlwt Modul Fehler
- 29. Pandas to_excel, um einen Datenrahmen zu schreiben, führt zu einer leeren Tabelle - wie schreibt man Excel mit xlwt?
- 30. Schreibe Python-Liste in Excel-Zeilen mit xlwt
Danke. V informativ und ich wollte früher sagen - die Links sind sehr nützlich. –
akzeptiert - ja. upvote, habe ich bis jetzt nicht bemerkt - thx Die Funktion xlutils.copy() scheint keine Arbeitsblätter mit Pivot-Tabellen zu erhalten. Gibt es eine Problemumgehung? –
Ich habe bereits Ihre Frage zu Pivot-Tischen beantwortet: Nr. –