2016-05-12 3 views
1

Ich habe verschiedene Python-Listenvariablen (data1, data2, data3 ect), die Daten enthalten, die ich in ein bereits bestehendes Excel-Blatt einfügen möchte. Zur Zeit geht meine Schleife so.Wie fügt man Daten mit openpyx Python an Excel-Datei von einer angegebenen Zeile?

for row, entry in enumerate(data1,start=1): 
    st.cell(row=row, column=1, value=entry) 
    work.save('sample.xlsx') 
for row, entry in enumerate(data2,start=1): 
    st.cell(row=row, column=2, value=entry) 
    work.save('sample.xlsx') 
for row, entry in enumerate(data3,start=1): 
    st.cell(row=row, column=3, value=entry) 
    work.save('sample.xlsx') 
for row, entry in enumerate(data4,start=1): 
    st.cell(row=row, column=4, value=entry) 
    work.save('sample.xlsx') 
for row, entry in enumerate(data5,start=1): 
    st.cell(row=row, column=5, value=entry) 
    work.save('sample.xlsx') 
for row, entry in enumerate(data6,start=1): 
    st.cell(row=row, column=6, value=entry) 
    work.save('sample.xlsx') 
for row, entry in enumerate(data7,start=1): 
    st.cell(row=row, column=7, value=entry) 
    work.save('sample.xlsx')  

Sobald mein Python-Skript ausgeführt wird, speichert es die Daten aus der ersten Zeile. Wenn ich das Skript erneut ausführe, möchte ich, dass die neuen Daten unter die verfügbaren Daten fallen.

Wie geht das?

Antwort

2

Try

sheet.max_row 

es wird wieder die letzte Zeile Wert verwenden, können Sie starten von hier aus die neuen Werte zu schreiben.

max = ws.max_row 
for row, entry in enumerate(data1,start=1): 
    st.cell(row=row+max, column=1, value=entry) 

Hope it helps.Happy :)

+0

Das ist richtig. sheet.max_row gibt die letzte Zeile. Also in meiner Schleife wo soll ich diesen Wert angeben? Ist es in der 'start = Zeilennummer'? –

+0

Hier wird "PermissionError Errno 13 permission denied" angezeigt. –

+0

Habe es einfach versucht, Noch heißt es Berechtigung verweigert! Traceback (letzter Aufruf zuletzt): 'writer.save (Dateiname, as_template = as_template) Datei" C: \ Benutzer \ rnair \ AppData \ Lokale \ Programme \ Python \ Python35 \ lib \ Site-Pakete \ openpyxl-2.4 .0a1-py3.5.egg \ openpyxl \ writer \ excel.py ", Zeile 230, im Speicher archive = ZipFile (Dateiname, 'w', ZIP_DEFLATED, allowZip64 = True) Datei" C: \ Users \ rnair \ AppData \ Lokale \ Programme \ Python \ Python35 \ lib \ zipfile.py ", l ine 1009, in __init__ self.fp = io.open (Datei, Dateimodus) PermissionError: [Errno 13] Berechtigung verweigert: 'Probe. xlsx '' –

0

ws.append() Codierung immer Zeilen unter jedem vorhandenen Daten hinzufügen.

+0

Also, in meinem Beispiel sagst du, anstelle von work.save sollte ich work.append verwenden? –

+0

Es sagt "Workbook-Objekt hat kein Attribut namens append" –

+0

Ich sehe, dass Sie dieselbe Frage für jemand anderen beantwortet haben, wo Sie ihm empfohlen, den Pfad der Excel-Datei anzugeben, während Sie es erstellen. Da ich keine Datei erstelle und nur die verfügbare benutze, muss ich auch angeben ?? –

Verwandte Themen