Подтвердить что ты не робот

Как получить доступ к реальному значению ячейки с помощью модуля openpyxl для python

У меня возникают настоящие проблемы с этим, так как функция cell.value возвращает формулу, используемую для ячейки, и мне нужно извлечь результат Excel после работы.

Спасибо.


Хорошо, я думаю, что я нашел способ обойти это; по-видимому, для доступа к внутреннему значению cell.internal, вы должны использовать iter_rows() на своем листе ранее, что является списком "RawCell".

for row in ws.iter_rows():

    for cell in row:

        print cell.internal_value
4b9b3361

Ответ 1

Как Чарли Кларк уже предлагает вам установить data_only на True при загрузке вашей книги:

from openpyxl import load_workbook

wb = load_workbook("file.xlsx", data_only=True)
sh = wb["Sheet_name"]
print(sh["x10"].value)

Удачи:)

Ответ 2

Из кода видно, что вы используете оптимизированный считыватель: read_only=True. Вы можете переключаться между извлечением формулы и ее результатом с помощью флага data_only=True при открытии книги.

internal_value был частным атрибутом, который использовался только для обозначения (нетипизированного) значения, которое использует Excel, т.е. числа с эпохой в 1900 году для дат в отличие от формы Питона. Он был удален из библиотеки, поскольку этот вопрос был впервые задан.

Ответ 3

Попробуйте вместо этого использовать cell.internal_value.