schreiben in excel-Datei ohne überschreiben den alten Inhalt mit openpyxl

Brauche ich zum kopieren von Daten aus einer Textdatei in eine excel-Datei, aber ohne überschreiben der alten Daten.

mein code:

import os,sys
from openpyxl import Workbook
from openpyxl.compat import range

wb = Workbook()
Excelfilename = 'LogErrors.xlsx'
ws1 = wb.active
ws1.title = "Historique"
excelData = []
try:
    with open('out.txt') as f:
        for line in f:
            excelData.append([word for word in line.split("\t") if word]) 
    for lines in range(1,len(excelData)):
        for columns in range(1,len(excelData[lines])):
            ws1.cell(column=columns, row=lines, value=excelData[lines][columns-1])
    wb.save(filename = Excelfilename)
except Exception, e:
    print e.message



One Reply
  1. 1

    Sind Sie nicht laden Sie die vorhandene excel-Datei. Sie erstellen eine neue zu jeder Zeit. Eine weitere änderung würde ich vorschlagen, ist, um eine neue Tabelle erstellen anstatt der Umbenennung der aktiven, wie es überschreibt Daten im aktiven Blatt. Folgender code liest den text aus der Datei und schreibt auf ein neues Blatt, jedes mal, wenn Sie das Skript ausführen. Ich habe einige Kommentare für die Hervorhebung der änderungen:

    import os,sys
    from openpyxl import load_workbook
    from openpyxl.compat import range
    
    Excelfilename = 'LogErrors.xlsx'
    # Open existing file with load_workbook
    wb = load_workbook(Excelfilename)
    # Create a new sheet instead of renaming active
    ws = wb.create_sheet('Historique')
    # You can rename the active if that was intent
    excelData = []
    try:
        with open('out.txt') as f:
            for line in f:
                excelData.append([word for word in line.split("\t") if word]) 
        # Indices for array start at 0
        for lines in range(0,len(excelData)):
            # Indices for array start at 0
            for columns in range(0,len(excelData[lines])):
                # Column and row indices start at 1
                ws.cell(column=columns+1, row=lines+1, value=excelData[lines][columns-1])
        wb.save(filename = Excelfilename)
    except Exception, e: # Don't catch everything, catch what you expect
        print e.message

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.