Как найти ячейку, содержащую определенный текст, используя Python? - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь перебрать файл xlsx и найти ячейку, которая содержит название нашей компании, используя python. Файл состоит из 2 или более листов, и каждый лист содержит информацию о 6 компаниях. Каждая ячейка, которую я ищу, имеет формирование, как показано ниже:

Ячейка F6 = 1ST (Компания_A + Компания_B)

Ячейка G6 = 2ND (Company_C + Company_D)

Ячейка H6 = 3RD (Company_E + Company_F) и т. д.

Я бы хотел найти ячейку, которая содержит Company_A. Я сделал некоторое кодирование, но у меня возникла проблема.

Кодировка, которую я могу сделать, выглядит следующим образом:

import openpyxl
bid = openpyxl.load_workbook('C:/Users/User/Desktop/bidding.xlsx', data_only=True)

for sheet in bid.worksheets:
    for row in sheet.iter_rows():
        for entry in row:
            if entry.value == '1ST(Company_A+Company_B)':
                print(entry.offset(row=1).value)
                print(round(entry.offset(row=8).value/100,5))

Я могу найти нужное значение, но я хочу найти ячейку, не вводя ничего

1 Ответ

0 голосов
/ 03 июля 2018

Поскольку вы используете ==, скрипт проверяет, соответствует ли строка в ячейке именно этому. Вместо этого используйте in.

Ваш код должен быть:

import openpyxl
bid = openpyxl.load_workbook('C:/Users/User/Desktop/bidding.xlsx', data_only=True)

for sheet in bid.worksheets:
    for row in sheet.iter_rows():
        for entry in row:
            try:
                if 'Company_A' in entry.value:
                    print(entry.offset(row=1).value)
                    print(round(entry.offset(row=8).value/100,5))

             except (AttributeError, TypeError):
                 continue
...