2013-12-12 4 views
4

Я использую NPOI для создания книги Excel и попытки отправить ее в виде вложения в электронном письме. Мой код выглядит следующим образом:MailMessage - Ошибка открытия приложения

var wb = new HSSFWorkbook(); 

//create the workbook 

using(var ms = new MemoryStream()) 
{ 
    wb.Write(ms); 
    var msg = new MailMessage(); 

    //create email 

    msg.Attachments.Add(new Attachment(ms, "Document.xls", "application/vnd.ms-excel")); 

    client.Send(msg); 
} 

Я исключила код, чтобы создать книгу, я проверил, чтобы убедиться, что он работает (я могу сохранить файл и открыть его без проблем), но если вы хотите чтобы увидеть что-нибудь, пожалуйста, спросите. client всего лишь мой SmtpClient.

Письмо отправляется без проблем, и вложение присутствует как Document.xls (как и ожидалось), однако при его открытии я получаю следующее сообщение (в Excel 2010), и когда я нажимаю «Да», чтобы открыть, рабочий лист пуст.

The file you are trying to open, 'Document.xls', is in a differrent format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?

Насколько мне известно, я указать формат. Кто-нибудь видит, что я делаю неправильно? Любая помощь будет оценена по достоинству.

+0

Вы пытались «Document.xlsx» и «application/octet-stream»? – Valin

ответ

7

Я, наконец, понял это. Прежде чем передать Stream в Attachment, мне нужно было вернуть его положение к нулю.

ms.Position = 0; 

Вот и все!

+0

Простой. Удивительно. Спасибо. –

Смежные вопросы