Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import PySimpleGUI as sg
- import openpyxl
- import datetime
- import os
- def SameFamily(a):
- CacheArray = []
- OutArray = []
- num = []
- for i in range(len(a)):
- CacheArray.append(a[i].split("*"))
- for i in range(len(CacheArray)):
- for j in range(len(CacheArray)):
- if j != i :
- if CacheArray[i][0] == CacheArray[j][0]:
- num.append(i)
- num.append(j)
- #time.sleep(1)
- #progress_bar.UpdateBar(i + 1)
- newNum=set(num)
- for n in newNum:
- OutArray.append(CacheArray[n])
- OutArray = sorted(OutArray)
- print(OutArray)
- return OutArray
- def ScanFile(a):
- str = '.xlsx'
- if a !='':
- if a.endswith(str) == True:
- return True
- else:
- return False
- else:
- return False
- day = datetime.datetime.today().strftime("%Y%m%d")
- outFile = 'out_'+str(day)+'.xlsx'
- #gui
- layout = [[sg.Input(key='_FILES_'), sg.FilesBrowse()], [sg.OK(), sg.Cancel()]]
- window = sg.Window('Открыть файл', layout)
- while True:
- # The Event Loop
- event, values = window.read()
- if event in (None, 'Exit', 'Cancel'):
- break
- inputFile = values['_FILES_']
- print(event, inputFile) #debug
- if ScanFile(inputFile) == True:
- StrCashe='' #временная строка
- WorkArray=[] #основной рабочий массив
- wb = openpyxl.load_workbook(inputFile)
- wbOut = openpyxl.Workbook()
- ws = wb.active
- #sheets = wb.get_sheet_names()
- for row in ws.rows:
- for cell in row:
- #делаем строковую переменную с данными из ячеек
- StrCashe=StrCashe+str(cell.value)+"*"
- #заполняем массив со строками
- WorkArray.append(StrCashe)
- StrCashe = ''
- outArray = SameFamily(WorkArray)
- sheet = wbOut.active
- for i in range(len(outArray)):
- for j in range(len(outArray[i])):
- c = sheet.cell(row = i+2, column = j+1)
- c.value = outArray[i][j]
- wbOut.save('out.xlsx')
- sg.popup('Все сделано')
- break
- else:
- sg.popup('ОШИБКА! Выберите ФАЙЛ c расширением xlsx')
- #break
Advertisement
Add Comment
Please, Sign In to add comment