net asp .net epplus

.net - asp - epplus vb net



EPPlus con MemoryStream como archivo adjunto de correo electrónico-el archivo está vacío (1)

Después de un poco más de búsqueda, encontré la solución. Aparentemente necesitaba establecer explícitamente la posición de inicio de MemoryStream antes de pasarlo como un archivo adjunto. La siguiente línea de código hizo el truco:

outputStream.Position = 0;

Estoy creando una aplicación de consola que mueve los datos a un archivo de Excel (utilizando la biblioteca EPPlus). Estoy guardando el paquete Excel como un MemoryStream y quiero adjuntarlo a un correo electrónico. Sin embargo, cuando recibo el correo electrónico, el archivo de Excel está vacío: 0 bytes.

¿Pensamientos?

MemoryStream outputStream = new MemoryStream(); using (ExcelPackage package = new ExcelPackage(outputStream)) { // export each facility''s rollup and detail to tabs in Excel (two tabs per facility) ExcelWorksheet facilityWorksheet = package.Workbook.Worksheets.Add(row["facility_id"].ToString()); ExcelWorksheet facilityDetail = package.Workbook.Worksheets.Add(row["facility_id"].ToString() + "-detail"); facilityWorksheet.Cells.LoadFromDataTable(rollupData, true); facilityDetail.Cells.LoadFromDataTable(rawExceptions, true); package.Save(); }

Aquí está el código para crear el archivo adjunto de correo electrónico:

Attachment attachment = new Attachment(outputStream, "ECO_exceptions.xlsx", "application/vnd.ms-excel");