Analice extractos bancarios en formato .xlsx con Python y openpyxl

Descargo de responsabilidad

隆Achtung! Este caso fue escrito por un principiante: las soluciones dadas pueden ser excesivamente crudas y las soluciones sint谩cticas carecen de elegancia.





En ninguna parte de la pr谩ctica de un abogado existe una necesidad tan urgente de an谩lisis de datos como en los casos de quiebra: en tales casos, a veces es necesario analizar grandes vol煤menes de informaci贸n de extractos bancarios lo antes posible para encontrar transacciones sospechosas o restaurar Registros contables destruidos / ocultos / corregidos.





Dado que la mayor铆a de los estados de cuenta los proporcionan los bancos en el formato de viejas tablas de Excel, exist铆a el deseo de automatizar la b煤squeda de la informaci贸n necesaria en ellos. Se requiri贸 desarrollar una herramienta de este tipo que permita:





  1. Abra la tabla de Excel requerida y realice una b煤squeda l铆nea por l铆nea y hoja por hoja del valor por 1-3 palabras clave, sin molestarse con las herramientas de clasificaci贸n y filtrado de MO Excel. Se prefiere una b煤squeda l铆nea por l铆nea para permitir que se muestre toda la transacci贸n de inter茅s y se busque en todas las columnas.





  2. Habiendo encontrado filas con palabras clave, transfiera sus valores a una nueva tabla junto con el n煤mero de la fila correspondiente.





Se eligi贸 el m贸dulo de Python openpyxl como herramienta para este tipo de operaciones.





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, , , .





PD Al usar openpyxl, la b煤squeda de palabras clave no distingue entre may煤sculas y min煤sculas, por lo que este problema no tuvo que resolverse.








All Articles