Analysieren Sie Kontoauszüge im XLSX-Format mit Python und openpyxl

Haftungsausschluss

Achtung! Dieser Fall wurde von einem Anfänger geschrieben: Die angegebenen Lösungen können übermäßig grob sein, und den syntaktischen Lösungen fehlt es an Eleganz.





Nirgendwo in der Praxis eines Anwalts besteht ein so dringender Bedarf an Datenanalysen wie in Insolvenzfällen: In solchen Fällen ist es manchmal erforderlich, große Mengen an Informationen aus Kontoauszügen so schnell wie möglich zu analysieren, um verdächtige Transaktionen zu finden oder wiederherzustellen zerstörte / versteckte / korrigierte Buchhaltungsunterlagen.





Da die meisten Kontoauszüge von Banken im Format guter alter Excel-Tabellen bereitgestellt werden, bestand der Wunsch, die Suche nach den darin enthaltenen Informationen zu automatisieren. Es war erforderlich, ein solches Werkzeug zu entwickeln, das Folgendes ermöglicht:





  1. Öffnen Sie die gewünschte Excel-Tabelle und führen Sie eine zeilenweise und blattweise Suche nach dem Wert anhand von 1-3 Schlüsselwörtern durch, ohne sich um die Sortier- und Filterwerkzeuge von MO Excel selbst zu kümmern. Eine zeilenweise Suche wird bevorzugt, damit die gesamte interessierende Transaktion angezeigt und in allen Spalten durchsucht werden kann.





  2. Nachdem Sie Zeilen mit Schlüsselwörtern gefunden haben, übertragen Sie deren Werte zusammen mit der Nummer der entsprechenden Zeile in eine neue Tabelle.





Das Python-Modul openpyxl wurde als Werkzeug für solche Operationen ausgewählt.





import openpyxl 
from openpyxl import Workbook

bankstatetment = input('     ') #      
#     
obj1= input('   ') 
obj2= input('   ')
obj3= input('   ')
wb = openpyxl.load_workbook(bankstatetment) #   /
results_string_list = list() # ,        
results_stringrow_list = list() # ,        
      
      



, openpyxl - , . , , , " 1", " 2", " 3".





. : results_string_list results_stringrow_list . , , .. .





sheet = wb['1'] #    .
for row in sheet: #   
    string = ''
    for cell in row:
        string = string + str(cell.value) + ' ' #    
        string_row = str(cell.row)+ ' '#  
    if obj1 in string: 
        results_string_list.append (string) #     
        results_stringrow_list.append (string_row) #     
    if obj2 in string:
        results_string_list.append (string)
        results_stringrow_list.append (string_row)
    if obj3 in string:
        results_string_list.append (string)
        results_stringrow_list.append (string_row)
      
      



. :





wb = Workbook() #  
ws = wb.active #   
a1 = ws['A1']
a1.value = ' ' #    ""
b1 = ws['B1']
b1.value = '   ' #    "B"
      
      



, : , , , openpyxl , . , , .





a2 = ws['A2']
a3 = ws['A3']
a4 = ws['A4']
a5 = ws['A5']
...
b2 = ws['B2']
b3 = ws['B3']
b4 = ws['B4']
b5 = ws['B5']
      
      



for "" .





for i in results_string_list[0:1]:
    a2.value = i
for i in results_string_list[1:2]:
    a3.value = i
for i in results_string_list[2:3]:
    a4.value = i
for i in results_string_list[3:4]:
    a5.value = i
...
for i in results_stringrow_list[0:1]:
    b2.value = i
for i in results_stringrow_list[1:2]:
    b3.value = i
for i in results_stringrow_list[2:3]:
    b4.value = i
for i in results_stringrow_list[3:4]:
    b5.value = i
...
wb.save(' .xlsx') 
      
      



, openpyxl, , , .





PS Bei der Verwendung von openpyxl wurde bei der Suche nach Schlüsselwörtern nicht zwischen Groß- und Kleinschreibung unterschieden, sodass dieses Problem nicht gelöst werden musste.








All Articles