#python #openpyxl
Вопрос:
Я пытаюсь повторить файл xlsx и найти ячейку, содержащую название нашей компании, с помощью python. Файл состоит из 2 или более листов, и на каждом листе содержится информация о 6 компаниях. Каждая ячейка, которую я ищу, имеет образование, как показано ниже:
Ячейка F6 = 1-я(Company_A Company_B)
Ячейка G6 = 2-я(Company_C Company_D)
Ячейка H6 = 3-я(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:
Когда вы используете ==
скрипт, он проверяет, соответствует ли строка в ячейке именно этому. Вместо этого используйте 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
Комментарии:
1. Я изменил «==» на «в», но получил сообщение об ошибке, в котором говорится, что аргумент типа «ячейка» не может быть повторен.
2. @PeterJung Это ошибка, которая возникает, если проверка пытается проверить пустую ячейку (нет), я добавил простую попытку и, кроме того, должен сделать трюк, это быстрое и грязное исправление, хотя, но для простой вещи это должно сработать.