【问题标题】:How to include an Excel range in a string?如何在字符串中包含 Excel 范围?
【发布时间】:2021-10-13 00:52:51
【问题描述】:

我一直在尝试编写一种算法来帮助我更有效地回复电子邮件,但在处理回复的格式时我陷入了僵局。

因此,响应是预结构化文本,我想在其中嵌入一个 Excel 范围作为表格,然后将其复制到剪贴板并粘贴,然后发送。基本上,回复应该如下所示:

  • “您请求的数据是:”
  • “感谢您与我们联系”

我已尝试为此目的使用 Pandas.Dataframe.to_string(),但格式非常混乱且令人不快。我知道如何将 Excel 范围复制到电子邮件中并且效果很好,所以我想知道是否有任何方法可以将 Excel 范围嵌入到字符串中,然后将其复制到剪贴板。

这是与响应设置相关的代码的 sn-p:

response_string = response_string + response_template[:243] + df.to_string(index=False) + "\n\n" + response_template[243:]

也许我在响应中使用常规字符串变量做错了什么?

提前致谢!

干杯。

【问题讨论】:

    标签: python python-3.x excel dataframe


    【解决方案1】:

    我建议为此使用jinja 模板。

    from jinja2 import Environment, PackageLoader, select_autoescape
    
    def render_email(df):
        env = Environment(
            loader=PackageLoader("app"),  # Choose another loader if convenient
            autoescape=select_autoescape()
        )
        template = env.get_template("template.html")
        return template.render(dataframe=df)
    

    做你的模板文件template.html:

    The data you requested is:
    {% for key, value in dataframe.iterrows() %}
    {{key}}: {{value}} {# You can choose here how to iterate/display your data #}
    {% endfor %}
    Thank you for contacting us
    

    如何迭代数据框取决于它包含的数据。

    【讨论】:

    • 所以,我已经尝试了答案,似乎令人满意,但是有一个小障碍,我无法在网上找到答案。因此,在我的公司中,我们使用 Outlook,在撰写电子邮件时,您可以使用一些“HTML 模式”将图像和表格嵌入其中。我想知道如何将 HTML 从 Jinja 模板复制并粘贴到 Outlook 并让它看起来像文本,而不是 HTML 代码。您是否对如何解决这个问题有任何想法?提前致谢!
    • 您可以将任何文件类型设置为 jinja 模板。名为“template.txt”的相同模板将呈现相同的内容。如果您的模板不包含任何 html 标签,那么它根本就不是 html。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-01
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2013-02-13
    相关资源
    最近更新 更多