Я использую NPOI для создания отчета Excel из шаблона, напишу книгу в MemoryStream и затем привяжу ее к MailMessage на C#. Мой отчет сгенерирован ОК, я вижу, что он отлично подбирает листы в отладке. Но когда я пишу его в MemoryStream и пытаюсь прикрепить его, объект Attachment говорит Size: -1 в свойстве ContentDisposition. Я думал, что установка позиции считывателя объектов MemoryStream на 0 решит это, но не повезло.Создание приложения MailMessage из MemoryStream
MailMessage mm = new MailMessage("[email protected]", "[email protected]");
mm.Subject = "Reports for October, 2015";
mm.Body = "Attached below is the report.";
using (var memStream = new MemoryStream())
{
HSSFWorkbook closedReport = getClosedReport();
closedReport.Write(memStream);
memStream.Position = 0;
Attachment att1 = new Attachment(memStream, "ClosedReport.xls");
att1.ContentType = new System.Net.Mime.ContentType("application/vnd.ms-excel");
mm.Attachments.Add(att1);
memStream.Close();
}
Мой объект MemoryStream имеет длину 30 720, поэтому я считаю, что отчет записывается на него.
Я не мог заставить его измениться с -1, но отправка сообщения перед закрытием потока заставляет его работать нормально! благодаря – wizloc