У меня есть таблица с ячейками, содержащими текст без формул, с формулами и с форматом datetime
. Мне нужно прочитать фактическое значение для всех этих трех случаев.
Использование Python 3 с Openpyxl 3.0.3.
В настоящее время у меня есть следующий код. Использование data_only=True
, как предложено в других сообщениях SO об этой проблеме.
workbook = load_workbook(r"path\to\my\spreadsheet.xlsx", data_only=True)
# select first available sheet
sheet = workbook.active
sheet.title
for value in sheet.iter_rows(min_row=2,
max_row=86,
min_col=1,
max_col=7,
values_only=True):
print(value)
Фрагмент полученного результата показан ниже. В этом примере первый столбец в порядке. Третий столбец отформатирован по дате, но мне нужно фактическое значение ячейки (чтобы они были 26/1/2020 и 27/1/2020). В пятом и шестом столбцах есть формулы, но мне нужно фактическое значение.
(2, None, datetime.datetime(2020, 1, 26, 0, 0), None, '=SUM(D$3:D4)', '=E4/E3', None)
(3, None, datetime.datetime(2020, 1, 27, 0, 0), None, '=SUM(D$3:D5)', '=E5/E4', None)