Immer AttributeError 'Arbeitsmappe' - Objekt hat kein Attribut 'add_worksheet' - beim schreiben der Daten-frame zu excel-Blatt
Ich habe folgenden code und versuche zu schreiben ein Daten-frame in eine "Bestehende" Arbeitsblatt einer Excel-Datei (bezeichnet als hier test.xlsx). Sheet3 ist der gezielte Blatt, wo ich will, um die Daten und ich will nicht ersetzen die gesamte Platte durch eine neue.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
book = load_workbook('test.xlsx')
writer = pd.ExcelWriter('test.xlsx')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets) # *I am not sure what is happening in this line*
df.to_excel(writer,"Sheet3",startcol=0, startrow=20)
Wenn ich bin mit den code-Zeilen, ich bin immer diese Fehlermeldung für die Letzte Zeile:
AttributeError: 'Arbeitsmappe' - Objekt hat kein Attribut 'add_worksheet'. Nun, warum sehe ich diese Fehlermeldung wenn ich versuche nicht zu Arbeitsblatt hinzufügen ?
Hinweis: ich bin mir bewusst das ähnliche Problem Python, Wie die Verwendung ExcelWriter zum schreiben in ein vorhandenes Arbeitsblatt, sondern seine nicht funktioniert für mich, und ich kann nicht kommentieren, dass die post entweder.
- es ist wahrscheinlich, um das Stück code, dass Sie nicht wissen, was passiert. Warum brauchen Sie das?
- wir müssen Buch-und Blatt-Attribute hinzufügen, Blättern oder speichern in excel. 'Schriftsteller.Buch = Buch' legt das Ergebnis der load_book als der writer ' s book-Attribut, so können Sie es verändern. 'Schriftsteller.Blätter = dict((ws.Titel, ws) für ws im Buch.Arbeitsblätter)' - diese Zeile generieren, die Blatt-Attribut. Ich denke, es ist nötig, damit wir Bearbeiten können, die gezielte Blatt.
- haben Sie versucht, looping ein Blatt zu einem Zeitpunkt? Ich habe getan, dass in der Vergangenheit mit Erfolg
- Habe ich nicht. Wie schlagen Sie vor, das zu tun ? Ich bin ganz neu bei python, wenn man ausarbeiten könnte etwas code wäre hilfreich
- Pandas standardmäßig xlsxwriter. Sie müssen ausdrücklich festlegen, den Motor zu openpyxl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine helper-Funktion:
Verwendung:
Einige details:
**to_excel_kwargs
- verwendet, um pass zusätzliche namens Parameterdf.to_excel()
wie ich in der obigen Beispiel - parameterstartcol
ist unbekanntappend_df_to_excel()
so wird er behandelt, wie ein Teil der**to_excel_kwargs
parameter (dictionary).writer.sheets = {ws.title:ws for ws in writer.book.worksheets}
verwendet werden, um zu kopieren, die vorhandenen Blätter zuwriter
openpyxl Objekt. Ich kann nicht erklären, warum es nicht geschieht automatisch, wenn Sie Lesenwriter = pd.ExcelWriter(filename, engine='openpyxl')
- Sie sollten sich Fragen, Autorenopenpyxl
Modul über, die...Können Sie
openpyxl
als der Motor beim anlegen einer Instanz vonpd.ExcelWriter
.Hoffe, das funktioniert für Sie.
openpyxl hat die Unterstützung für Pandas dataframes, so sind Sie am besten aus, verwenden Sie es direkt. Sehen http://openpyxl.readthedocs.io/en/latest/pandas.html für mehr details.