我正在尝试使用XLSXWriter生成XLSX文件,然后在电子邮件中以附件作为附件发送。这是我现在拥有的:
def WriteToExcel(project):
output = BytesIO()
workbook = xlsxwriter.Workbook(output)
#putting in data
workbook.close()
xlsx_data = output.getvalue()
# xlsx_data contains the Excel file
return xlsx_data
def project_email (request, project_id):
project = Project.objects.get(id = project_id)
xlsx_data = WriteToExcel(project)
message = EmailMessage("Heading", 'Here is the message.', 'HOST', ['SAMPLE@gmail.com'])
message.attach_file(xlsx_data)
message.send()
当我尝试发送电子邮件时,我有以下错误:
typeError at/projstatus/1/email
无法在字节样对象上使用字符串模式
有什么办法可以解决吗?例如,将XLSX文件非二进制文件或电子邮件中有一个附加二进制文件的函数?
实际上我发现了这个问题。您只需要这样的东西:
def project_email (request, project_id):
project = Project.objects.get(id = project_id)
xlsx_data = WriteToExcel(project)
message = EmailMessage("Heading", 'Here is the message.', 'HOST', ['SAMPLE@gmail.com'])
message.attach("Report.xlsx", xlsx_data, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
message.send()
我将在这里离开这里,以防其他人想知道同一件事