Analisis laporan bank dalam format .xlsx dengan Python dan openpyxl

Penolakan

Achtung! Kasus ini ditulis oleh seorang pemula: solusi yang diberikan bisa sangat kasar, dan solusi sintaksisnya kurang elegan.





Dalam praktik pengacara, tidak ada kebutuhan mendesak untuk analisis data seperti dalam kasus kebangkrutan: dalam kasus seperti itu, terkadang perlu menganalisis sejumlah besar informasi dari laporan bank sesegera mungkin untuk menemukan transaksi atau pemulihan yang mencurigakan. catatan akuntansi yang dihancurkan / disembunyikan / dikoreksi.





Karena sebagian besar laporan disediakan oleh bank dalam format tabel excel lama yang bagus, ada keinginan untuk mengotomatiskan pencarian informasi yang diperlukan di dalamnya. Diperlukan untuk mengembangkan alat yang memungkinkan:





  1. Buka tabel excel yang diperlukan dan lakukan pencarian baris demi baris dan lembar demi lembar untuk nilai dengan 1-3 kata kunci, tanpa perlu repot dengan alat pemilah dan pemfilteran dari MO Excel itu sendiri. Pencarian baris demi baris lebih disukai untuk memungkinkan seluruh transaksi yang menarik ditampilkan dan mencari di semua kolom.





  2. Setelah menemukan baris dengan kata kunci, transfer nilainya ke tabel baru bersama dengan nomor baris yang sesuai.





Modul Python openpyxl dipilih sebagai alat untuk operasi semacam itu.





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 Saat menggunakan openpyxl, pencarian kata kunci tidak case sensitive, jadi masalah ini tidak harus diselesaikan.








All Articles