Ich benutze Pandas, um auf folgende Weise in eine Excel-Datei zu schreiben:
import pandas
writer = pandas.ExcelWriter('Masterfile.xlsx')
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Masterfile.xlsx besteht bereits aus mehreren verschiedenen Registerkarten. Es enthält jedoch noch nicht "Main".
Pandas schreibt korrekt in das "Haupt" -Blatt, leider werden auch alle anderen Registerkarten gelöscht.
ExcelReader
Antworten:
Pandas docs sagt, dass es openpyxl für xlsx-Dateien verwendet. Ein kurzer Blick durch den Code in
ExcelWriter
gibt einen Hinweis darauf, dass so etwas funktionieren könnte:quelle
openpyxl
und genügend Details angeben: Welche Art von Formeln haben Sie, wie werden Daten aktualisiert, wie werden die Formeln gebremst? Jetzt kann ich einfach nicht anders, zu viele Dinge, die ich nicht weiß.Hier ist eine Hilfsfunktion:
HINWEIS: für Pandas <0.21.0, ersetzen Sie
sheet_name
mitsheetname
!Anwendungsbeispiele:
quelle
Mit
openpyxl
Version2.4.0
undpandas
Version0.19.2
wird der von @ski entwickelte Prozess etwas einfacher:quelle
Ab Pandas 0.24 können Sie dies mit dem
mode
Schlüsselwortargument vereinfachenExcelWriter
:quelle
mode = 'a'
Fügt weitere Blätter hinzu, aber was ist, wenn ich Daten auf den vorhandenen Blättern überschreiben möchte?Alte Frage, aber ich vermute, einige Leute suchen immer noch danach - also ...
Ich finde diese Methode schön, weil alle Arbeitsblätter in ein Wörterbuch mit Blattnamen- und Datenrahmenpaaren geladen werden, das von Pandas mit der Option Blattname = Keine erstellt wurde. Es ist einfach, Arbeitsblätter zwischen dem Lesen der Tabelle im Diktatformat und dem Zurückschreiben aus dem Diktat hinzuzufügen, zu löschen oder zu ändern. Für mich funktioniert der xlsxwriter in Bezug auf Geschwindigkeit und Format besser als openpyxl für diese spezielle Aufgabe.
Hinweis: Zukünftige Versionen von Pandas (0.21.0+) ändern den Parameter "Blattname" in "Blattname".
Für das Beispiel in der Frage 2013:
quelle
Ich weiß, dass dies ein älterer Thread ist, aber dies ist das erste Element, das Sie bei der Suche finden, und die oben genannten Lösungen funktionieren nicht, wenn Sie Diagramme in einer bereits erstellten Arbeitsmappe beibehalten müssen. In diesem Fall ist xlwings eine bessere Option - Sie können in das Excel-Buch schreiben und die Diagramme / Diagrammdaten behalten.
einfaches Beispiel:
quelle
Es gibt eine bessere Lösung in Pandas 0.24:
Vor:
nach dem:
Aktualisieren Sie jetzt Ihre Pandas:
quelle
XslxWriter
Option nicht.engine=openpyxl
da nur ein neues Arbeitsblatt mit dem Namenthe only worksheet1
Dies funktioniert einwandfrei, nur dass die Formatierung der Master-Datei (Datei, zu der wir ein neues Blatt hinzufügen) verloren geht.
quelle
Die Hoffnung "keep_date_col" hilft Ihnen
quelle
quelle