Isenção de responsabilidade
Achtung! Este caso foi escrito por um iniciante: as soluções fornecidas podem ser excessivamente grosseiras e as soluções sintáticas carecem de elegância.
Em nenhum lugar da prática de um advogado há uma necessidade tão urgente de análise de dados como em casos de falência: nesses casos, às vezes é necessário analisar grandes volumes de informações de extratos bancários o mais rápido possível para encontrar transações suspeitas ou restaurar registros contábeis destruídos / ocultos / corrigidos.
Como a maioria dos extratos são fornecidos pelos bancos no formato das boas e velhas tabelas do Excel, havia o desejo de automatizar a busca das informações necessárias neles. Foi necessário desenvolver uma ferramenta que permite:
Abra a tabela do Excel necessária e execute a busca linha por linha e folha por folha para o valor por 1-3 palavras-chave, sem se preocupar com as ferramentas de classificação e filtragem do próprio MO Excel. É preferível uma pesquisa linha por linha para permitir que toda a transação de interesse seja exibida e pesquisar em todas as colunas.
Tendo encontrado linhas com palavras-chave, transfira seus valores para uma nova tabela junto com o número da linha correspondente.
O módulo Python openpyxl foi escolhido como ferramenta para tais operações.
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 Ao usar openpyxl, a busca por palavras-chave não diferenciava maiúsculas de minúsculas, então este problema não precisava ser resolvido.