Ответ 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)
Удачи:)
У меня возникают настоящие проблемы с этим, так как функция cell.value возвращает формулу, используемую для ячейки, и мне нужно извлечь результат Excel после работы.
Спасибо.
Хорошо, я думаю, что я нашел способ обойти это; по-видимому, для доступа к внутреннему значению cell.internal, вы должны использовать iter_rows() на своем листе ранее, что является списком "RawCell".
for row in ws.iter_rows():
for cell in row:
print cell.internal_value
Как Чарли Кларк уже предлагает вам установить data_only
на True
при загрузке вашей книги:
from openpyxl import load_workbook
wb = load_workbook("file.xlsx", data_only=True)
sh = wb["Sheet_name"]
print(sh["x10"].value)
Удачи:)
Из кода видно, что вы используете оптимизированный считыватель: read_only=True
. Вы можете переключаться между извлечением формулы и ее результатом с помощью флага data_only=True
при открытии книги.
internal_value
был частным атрибутом, который использовался только для обозначения (нетипизированного) значения, которое использует Excel, т.е. числа с эпохой в 1900 году для дат в отличие от формы Питона. Он был удален из библиотеки, поскольку этот вопрос был впервые задан.
Попробуйте вместо этого использовать cell.internal_value
.