使用 Python 邮件合并值而不是公式

问题描述 投票:0回答:2

我正在尝试通过邮件合并具有由公式产生的值的单元格。例如,下面我有一个日期单元格,它是电子表格中日/月/年的串联。通常当我通过word进行邮件合并时,它只会合并到值中。当我使用以下代码执行此操作时,它将合并到实际公式而不是计算值中。有没有办法让它提取值而不是公式?

我已经在打开 Excel 和关闭 Excel 的情况下尝试过此操作。如果单元格只是键入文本,则它可以很好地合并。唯一的问题是公式。

它将合并为 =CONCATENATE(C2, "/", D2, "/", E2),而不是 1/2/2010

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")
python excel merge ms-word mailmerge
2个回答
0
投票

对这个环境不是很熟悉,但是openpyxl确实返回了公式(如果有的话)。似乎没有两个不同的属性可以让您返回值或公式,但您可以通过这样做消除公式:

wb = openpyxl.load_workbook('FullMerge.xlsm',data_only=True)

0
投票

您是否尝试过使用第三方邮件合并应用程序

© www.soinside.com 2019 - 2024. All rights reserved.