Tengo un problema extraño aquí con EPPlus para crear algunos archivos .XLSX. Tengo un paquete que se está creando y luego se envía a la respuesta.EPPlus Error al generar .XLSX a la respuesta
he creado un paquete de la siguiente manera:
var file = new FileInfo(@"C:\Test.xlsx");
ExcelPackage package = new ExcelPackage(file);
//...code to output data...//
package.Save();
Esto guarda el archivo en mi unidad C: local correctamente, y cuando lo abro funciona muy bien. No hay errores ni nada, el formato es correcto, etc.
Sin embargo, ahora deseo salida de este archivo para la secuencia de respuesta, así que he modificado el código que tenía que tener este aspecto:
ExcelPackage package = new ExcelPackage();
//...code to output data...//
MemoryStream result = new MemoryStream();
package.SaveAs(result);
context.Response.Clear();
context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
context.Response.AddHeader("Content-Disposition", "attachment;filename=MissionDetails.xlsx");
result.WriteTo(context.Response.OutputStream);
context.Response.End();
pero cuando me ejecutar este código me sale el siguiente mensaje al intentar abrir el archivo de Excel:
Excel found unreadable content in filename.xlsx. Do you want to recover the contents of this workbook? If you trust the source of this workbook, click Yes
clic en Sí a continuación, muestra el siguiente mensaje:
This file cannot be opened by using Microsoft Excel. Do you want to search the Microsoft Office Online Web site for a converter that can open the file?
selecciono No
aquí y entonces se abre el archivo de Excel y muestra este error:
Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded.
PERO el archivo a continuación, carga bien y parece estar formateado correctamente y todo. Pero cada vez que intento abrir el archivo, me da las mismas indicaciones y un mensaje de error.
Note: The code to output the data does not change for either of these scenarios.
¿Alguien ha visto algo como esto? ¿O tiene alguna idea de lo que podría hacer que esto guarde el archivo incorrectamente solo al enviar a la respuesta?
¿Se puede simplificar el contenido del archivo para fines de prueba (es decir, simplemente establecer el valor de una sola celda) para asegurarse de que no haya ningún problema con el contenido del archivo en lugar de la transmisión de archivos? – JustinStolle
Como se dijo, el contenido es el mismo que cuando lo guardo en el disco duro. Y lo he probado y verificado que no es el contenido que agrego a la celda. Debe ser un problema con la respuesta. – j00b
Por lo tanto, cree un archivo extremadamente simple para transmitir para verificar que es donde reside el problema; es posible que no tenga nada que ver con EPPlus si ese es el caso. – JustinStolle