Как с помощью opepyxl получить значение из ячейки, в которой содержится формула?
Функция заполняет файл Excel значениями, которые используются в формулах на этом же листе. Затем другая функция пытается считать значения из ячеек с формулами. Используя аргумент data_only=True
в функции load_workbook()
, думал буду получать значения из ячеек с формулами, но выходит None
. Если вместо заполнения ячеек использовать не функцию, а сделать это вручную, то тогда значения из ячеек с формулами считываются корректно.
Кто-нибудь может объяснить такое поведение?
from openpyxl import load_workbook
book = load_workbook('file.xlsx', data_only=True)
sheet = book['Сводная']
book.active = sheet
for_record = []
dict_with_total = {'Управление': 3, 'Офис': 4, 'Склад': 5}
columns_status = {'Карандаш': 'B', 'Ручка': 'C', 'Тетрадь': 'D'}
with (open('report.txt', mode='w', encoding='utf-8') as file):
for podrazd, row in dict_with_total.items():
for_record.append(podrazd + '\n')
str_temp = ''
for head, column in columns_status.items():
str_temp += head + ' ' + str(sheet[column + str(row)].value) + ', '
for_record.append(str_temp[:-2] + '.' + '\n')
file.write(''.join(for_record))
book.close()
sheet[column + str(row)].value вот здесь считывается None