[英]Xlsio Excel file as Mailkit attachement
我正在使用 Mailkit 發送 email,我想發送一個創建的 Excel 文件(感謝 Xlsio)作為 Email 附件。
我成功發送了 email,我看到擴展名 (.xlsx) 很好的附件,但是當我想打開它時出現錯誤“格式或擴展名無效”。
這是我為創建 Excel 文件而編寫的代碼
FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
workbook.SaveAs(stream, ExcelSaveType.SaveAsXLS);
FileAttachementDto file = new()
{
FileName = fileName,
File = stream, // Type of File property is Stream
};
我為將文件添加到 email 附件而編寫的代碼
var attachements = MimeEntity.Load(
new ContentType("application", "vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
new MemoryStream(myFile.File.ReadAsBytes()));
bodyBuilder.Attachments.Add(attachements);
謝謝
不要這樣做:
var attachements = MimeEntity.Load(
new ContentType("application", "vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
new MemoryStream(myFile.File.ReadAsBytes()));
那是為了解析 HTTP web 響應。
只需這樣做:
var attachment = new MimePart ("application", "vnd.openxmlformats-officedocument.spreadsheetml.sheet") {
FileName = "fileName.xls",
ContentTransferEncoding = ContentEncoding.Base64,
Content = new MimeContent (new MemoryStream (myFile.File.ReadAsBytes ()))
};
建議您在保存Excel文檔前將工作簿版本設置為Xlsx,並去掉IWorkbook的SaveAs方法中的ExcelSaveType.SaveAsXLS參數。
代碼片段:
FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
workbook.Version = ExcelVersion.Xlsx;
workbook.SaveAs(stream);
FileAttachementDto file = new()
{
FileName = fileName,
File = stream, // Type of File property is Stream
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.