Задать вопрос
@egor_u

В чем ошибка в коде?

КОД:
import openpyxl
wb = openpyxl.open('путь к файлу')

wb.active = 1
ws = wb.active

for row in ws.iter_rows('B4:F4'):
for cell in row:
if cell.value == "Анна":
print(ws.cell(row=cell.row, column=2).value)

Код выдает ошибку:
for row in range(min_row, max_row + 1):
TypeError: 'str' object cannot be interpreted as an integer

Данный код к этой таблице:
61979f2ab27f0008999293.png
Требуется найти ячейку со значением "Анна" и вывести в консоль
В чем состоит проблема?
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Metallizer10
Ну вообще если посмотреть исходник, то функция iter_rows имеет следующее объявление:
def iter_rows(self, min_row=None, max_row=None, min_col=None, max_col=None, values_only=False):
        """
        Produces cells from the worksheet, by row. Specify the iteration range
        using indices of rows and columns.

        If no indices are specified the range starts at A1.

        If no cells are in the worksheet an empty tuple will be returned.

        :param min_col: smallest column index (1-based index)
        :type min_col: int

        :param min_row: smallest row index (1-based index)
        :type min_row: int

        :param max_col: largest column index (1-based index)
        :type max_col: int

        :param max_row: largest row index (1-based index)
        :type max_row: int

        :param values_only: whether only cell values should be returned
        :type values_only: bool

        :rtype: generator
        """


Таким образом, склоняюсь к тому, что у вас ошибка, скорее всего, именно в этом моменте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы