Слияние значений почты вместо формул с использованием Python

Я пытаюсь отправить слияние в ячейках, которые имеют значение, полученное из формулы. Ниже, например, у меня есть ячейка даты, которая представляет собой конкатенацию дня/месяца/года в электронной таблице. Обычно, когда я слияю почту через слово, оно просто сливается со значением. Однако, когда я делаю это со следующим кодом, он будет сливаться с фактической формулой, а не с вычисленным значением. Есть ли способ получить значения вместо формулы?

Я пробовал это с открытым Excel и закрытым Excel. Если ячейка представляет собой только что набранный текст, он отлично сливается. Единственная проблема с формулами.

Вместо 02.01.2010 он будет объединен в = СЦЕПИТЬ (C2, /, D2, /, E2)

from __future__ import print_function
import os
import openpyxl
from mailmerge import MailMerge
from datetime import date  

os. chdir(r'CURRENT WORKING FOLDER')      

wb = openpyxl.load_workbook('FullMerge.xlsm')
sheet = wb["Database"]
max_col = 104
sheet.delete_rows(sheet.min_row, 1)

template = "FullMerge.docx"
document1 = MailMerge("FullMerge.docx")

Date = str(sheet.cell(row = 1, column = 1).value)
    
document1.merge(
    Date = Date   
    )

document1.write("FinishedMerge.docx")

person Phil    schedule 28.06.2020    source источник


Ответы (1)


Не очень хорошо знаком с этой средой, но openpyxl действительно возвращает формулу (если она есть). Кажется, нет двух разных свойств, которые позволяют вам вернуть значение или формулу, но вы можете исключить формулы, выполнив следующие действия:

wb = openpyxl.load_workbook('FullMerge.xlsm',data_only=True)
person Community    schedule 28.06.2020