2017-06-13 4 views
0

Ich versuche, meine Ausgabe von meinem Code zu bekommen in ein Excel-Tabellenblatt zu gehen, und ich halte diese spezifischen Fehler bekommen:Python PDF Scraper Ausgabe in Excel

„Ausnahme: Es wird versucht Zelle zu überschreiben: Sheetname = u‘ Blatt 1 'rowx = 1 colx = 0 "

Wie habe ich meinen Code eingerichtet, wie ich es brauche, um die Artikel zu finden und das gewünschte Ergebnis zu drucken, da ich es verwende, um .PDFs zu kratzen und es wird produzieren die genaue Ausgabe benötigt, wenn ich alles in eine Textdatei schreiben wollte. Aber ich hoffe, dass ich zu Excel ausgeben kann, damit ich angeben kann, wohin die Daten gehen sollen. Es scheint, dass, weil die Ausgabe des Codes die Ergebnisse durchläuft, auch versucht wird, alles kontinuierlich in Zeile 0, Spalte 0 zu schreiben, und ich bekomme immer wieder einen Fehler beim Überschreiben von Daten.

from xlwt import Workbook, Formula, easyxf 
    wb = Workbook() 
    sheet1 = wb.add_sheet('Sheet 1') 
    lines = open("register.txt", "r").readlines() 

    search_counters = { 
     "Per End": 0, 
    } 
    lines=[line for line in lines if line] # removes empty lines, if there are any 
    for i, line in enumerate(lines): 
     for search_key in search_counters.keys(): 
      if search_key in line: 
       # print the previous line if the current line contains "Per End" 
       search_counters[search_key] += 1 
       if search_key == "Per End": 
        print lines[i-1] 
        EE_Name = lines[i-1] 
    wb.save('payroll2.xls') 
+0

Entschuldigung, um vage zu sein. Ich möchte nicht, dass der Output überschrieben wird. Ich brauche es, um die Daten in neue Zeilen für die erste Spalte aufzulisten. –

Antwort

0

XLWT erlaubt nicht implizit das Überschreiben von Zellen. Siehe die Antwort auf eine ähnliche Frage hier: Python XLWT attempt to overwrite cell workaround

Grundsätzlich um die Überschreibungs Ausnahme erhalten Sie Ihre Blatt Schaffung Linie müssen wie folgt aussehen:

sheet1 = wb.add_sheet('Sheet 1', cell_overwrite_ok=True) 

Aber tun wird 1 immer in Ihrem Blatt so führen überschrieben werden. Ist es das was du willst?

+0

Ich möchte nicht, dass es überschrieben wird. Ich möchte, dass sie nur die Daten in der nächsten Zeile auflisten, bis keine weiteren Daten mehr vorhanden sind. –