我已经使用xlwt创建了一个工作簿,现在我想知道是否可以使用此工作簿发送电子邮件,但是没有将工作簿保存在磁盘上.我无法正确实施,我可以将其作为附件发送而不会暂时保存在磁盘上.以下是电子邮件作为附件的代码.
file_name = "temp_file_location.xlsx"
book = xlwt.Workbook()
sheet = book.add_sheet("XYZ")
book.save(file_name)
message = EmailMessage(subject="Subject", body="body",
from_email="random@gmail.com",
to=email_list)
message.attach_file(file_name)
message.send()
Run Code Online (Sandbox Code Playgroud)
这里有一个类似的问题: 如何发送带附件的电子邮件?
但没有解决方案,我无法发送电子邮件而不将其暂时保存在磁盘上.
有任何想法吗?
小智 6
您可以使用StringIO在内存中编写工作簿:
import StringIO
f = StringIO.StringIO() # create a file-like object
book = xlwt.Workbook()
sheet = book.add_sheet("XYZ")
book.save(f)
message = EmailMessage(subject="Subject", body="body",
from_email="random@gmail.com",
to=email_list)
message.attach('filename.xlsx', f.getvalue(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") #get the stream and set the correct mimetype
message.send()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |