I had a similar problem. Solved with highlighted line of code before creating the attachment from memory stream.
using (MemoryStream memoryStream = new MemoryStream())
{
MailMessage mailMessage = new MailMessage(smtpFrom, smtpTo);
mailMessage.Subject = subject;
mailMessage.Body = body;
__memoryStream.Seek(0, SeekOrigin.Begin);__
Attachment attachment = new Attachment(memoryStream, "<filename>.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
mailMessage.Attachments.Add(attachment);
SmtpClient smtpClient = new SmtpClient(smtpServer);
smtpClient.Send(mailMessage);
memoryStream.Close();
}