import time
import numpy as np
import pyscreenshot as ImageGrab
import cv2
import pytesseract
import re
# import keyboard
import openpyxl
theFile = openpyxl.load_workbook('text_name.xlsx')
allSheetNames = theFile.sheetnames
pytesseract.pytesseract.tesseract_cmd = r"C:\\Program Files\\Tesseract-OCR\\tesseract.exe"
filename = 'image.png'
last_time = time.time()
x = 1
screen = np.array(ImageGrab.grab(bbox=(716, 483, 1275, 652)))
print('цикл занял {} секунд'.format(time.time() - last_time))
last_time = time.time()
cv2.imshow('window', cv2.cvtColor(screen, cv2.COLOR_BGR2RGB))
cv2.imwrite(filename, screen)
x = x + 1
print(x)
def find_cell():
img = cv2.imread('image.png')
mytext = pytesseract.image_to_string(img, lang="rus")
print(mytext)
string = mytext
new_string = re.sub(r"\n", " ", string) # проблема тут или нет не пойму вроде текст равен нужному
print(new_string)
for row in range(1, currentSheet.max_row + 1):
for column in 'ABCDEFGHIJKL': # Можно добавить или уменьшить столбцы
cell_name = '{}{}'.format(column, row)
if currentSheet[cell_name].value == new_string:
# print("Ячейка {1} расположена на {0}" .format(cell_name, currentSheet[cell_name].value))
print('Номер ячейки {} равен значению. {}'.format(cell_name, currentSheet[cell_name].value))
print(cell_name)
return cell_name
for sheet in allSheetNames:
print('Текущее имя листа {}'.format(sheet))
currentSheet = theFile[sheet]
CellLetter = (find_cell())