python - 如何使用 openpyxl 将 Excel 作为电子邮件附件发送而不保存 [On The Fly]

标签 python linux django email-attachments openpyxl

我一直在尝试使用 openpyxl 将 Excel 作为电子邮件附件发送,而不在 Django 中保存 [On The Fly]

最佳答案

您可以将工作簿对象保存到 BytesIO 实例(from io import BytesIO)

output = BytesIO()
workbook.save(output)

然后,您可以使用 Django EmailMessage 类创建电子邮件并将 BytesIO 对象作为文件附加为第二个参数。

email = EmailMessage(
    'Hello',
    'Body goes here',
    'from@example.com',
    ['to1@example.com', 'to2@example.com'],
    ['bcc@example.com'],
    reply_to=['another@example.com'],
    headers={'Message-ID': 'foo'},
)

email.attach('file.xlsx', output.getvalue() , 'application/vnd.ms-excel')

下次请查看如何询问:)

关于python - 如何使用 openpyxl 将 Excel 作为电子邮件附件发送而不保存 [On The Fly],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40650278/

相关文章:

python - 如何在 Python 中读取整个文件?在命令行中普遍工作

python - Flask、Marshmallow 3 和 webargs use_args 无法解析参数

python - 如何在 Python Tkinter 中指定完全点击

linux - 修改/etc/profile linux

linux - 监听端口上的选择性多播组

django - 表上的插入或更新违反了外键约束(错误)

python - FloatField 在 Django 中返回 str 对象而不是 Float

python - Django 中 QuerySet 中特定列的平均重复项

python - 使用 lxml.iterparse 解析相同内容两次

c - 生产者-消费者 c - 更大值的段错误