2017-07-14 4 views
2

Ich habe eine XLS-Datei erstellt, in der ich einige Benutzereingaben in die Zellen schreiben. So weit, so gut, das Programm funktioniert; es schreibt die erste Zeile. Aber wenn ich das Programm neu starte, anstatt die Zeilen anzufügen, schreibt es über die erste. Ich versuche zu verstehen, wie es speichern es eine neue Zeile in der Excel-Tabelle machen anhängen und schließen Sie es etcAnfügen von Zeilen in Excel xlswriter

import xlsxwriter 

workbook = xlsxwriter.Workbook("test.xlsx",) 
worksheet = workbook.add_worksheet() 

row = 0 
col = 0 

worksheet.write(row, col,  'odhgos') 
worksheet.write(row, col + 1, 'e/p') 
worksheet.write(row, col + 2, 'dromologio') 
worksheet.write(row, col + 3, 'ora') 


row += 1 
worksheet.write_string(row, col,  odigosou) 
worksheet.write_string(row, col + 1, dromou) 
worksheet.write_string(row, col + 2, dromologio) 
worksheet.write_string(row, col + 3, ora) 

workbook.close() 

Mit diesem Code Ich habe ich in der Lage in die Datei zu schreiben, aber wie kann ich machen um eine Zeile in das vorhandene Blatt einzufügen. Alle Tutorials, die ich mir angesehen habe, alle Anweisungen, die ich recherchiert habe, funktionieren einfach nicht; Ich mache offensichtlich etwas falsch, aber ich kann es nicht erkennen.

+4

Sie können‘ t an existierende Datei mit 'xlsxwriter' anhängen. Was Sie tun können, ist die Datei zu lesen, schreiben Sie sie in eine neue, und fügen Sie dann darüber an. Sie können 'openpyxl' verwenden, das dies nativ tun kann, oder die Daten mit etwas wie' xlrd' lesen. –

+0

poo ..... ich fühle mich wirklich dumm jetzt vielen Dank Kumpel 4 Tage Arbeit wieder zu 0: D nicht lieben Sie Codierung? nochmals vielen Dank :) –

+0

Wenn Sie das obige Skript ausführen, erhalten Sie wahrscheinlich diesen Fehler: 'NameError: name 'odigosou''. Wenn Sie den 3. Parameter in all Ihren 'worksheet.write_string() 'zitieren, sollte Ihr Skript zwei Zeilen erzeugen. – patrickjlong1

Antwort

1

Question: ... how do I make it to append a row in the existing sheet

Lösung openpyxl verwenden, zum Beispiel:

from openpyxl import load_workbook 

new_row_data = [ 
    ['odhgos', 'e/p', 'dromologio', 'ora'], 
    ['odigosou', 'dromou', 'dromologio', 'ora']] 

wb = load_workbook("test/test.xlsx") 
# Select First Worksheet 
ws = wb.worksheets[0] 

# Append 2 new Rows - Columns A - D 
for row_data in new_row_data: 
    # Append Row Values 
    ws.append(row_data) 

wb.save("test/test.xlsx") 

mit Python getestet: 3.4.2 - openpyxl: 2.4.1 - Libreoffice: 4.3.3.2

+0

funktioniert gut, auch unter Python 2.7. Ich kann nicht verstehen, warum diese Antwort nicht als lösend markiert ist – Mrlenny

Verwandte Themen