Pythonとopenpyxlを使用して.xlsx形式の銀行取引明細書を分析します

免責事項

Achtung!このケースは初心者によって書かれました。与えられた解決策は過度に粗雑である可能性があり、構文上の解決策は優雅さを欠いています。





破産事件のようにデータ分析が緊急に必要なのは弁護士のどこにもありません。そのような場合、疑わしい取引を見つけたり復元したりするために、銀行取引明細書から大量の情報をできるだけ早く分析する必要がある場合があります。破棄/非表示/修正された会計記録。





ほとんどのステートメントは古き良きExcelテーブルの形式で銀行によって提供されているため、必要な情報の検索を自動化することが望まれていました。以下を可能にするようなツールを開発する必要がありました。





  1. 必要なExcelテーブルを開き、MO Excel自体の並べ替えツールやフィルタリングツールを気にせずに、1〜3個のキーワードで値を1行ずつおよび1枚ずつ検索します。関心のあるトランザクション全体を表示し、すべての列を検索できるようにするには、行ごとの検索をお勧めします。





  2. キーワードのある行を見つけたら、それらの値を対応する行の番号とともに新しいテーブルに転送します。





このような操作のツールとして、Pythonモジュールopenpyxlが選択されました。





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 openpyxlを使用する場合、キーワードの検索では大文字と小文字が区別されなかったため、この問題を解決する必要はありませんでした。








All Articles