from ejemplo create crear convert array archivo .net excel

.net - ejemplo - memorystream to pdf c#



¿Cómo escribir un libro de Excel en un MemoryStream en.NET? (5)

He trabajado mucho con la PIA y con el almacenamiento de archivos de Excel en un repositorio de documentos y su transmisión al navegador, y no he podido encontrar una solución para usar la PIA sin primero escribir los contenidos en el sistema de archivos primero.

Creo que tendrá que tragarse la bala y tratar con el sistema de archivos como intermediario. La buena noticia es que puede simplemente darle al archivo un nombre único como un guid o usar algún otro método de nombre de archivo temporal (no estoy seguro de si existe uno en .net) y simplemente eliminar el contenido cuando haya terminado.

¿Cómo escribo un libro de Excel en un MemoryStream sin guardarlo primero en el sistema de archivos?

Todas las opciones dentro de las opciones de guardar de Microsoft.Office.Interop.Excel.WorkBook toman un nombre de archivo.


Otra opción sería usar esta biblioteca gratuita para exportar el libro de trabajo. El método de guardar en la clase de libro de trabajo puede tomar un nombre de archivo o una secuencia.



La única forma en que podría hacerlo es si estaba preparado para crear un objeto personalizado que le permitiera almacenar todos los bits y piezas de datos / fórmulas / vba / links / ole objects que deseara conservar, copie de su libro de trabajo a el objeto, y luego persistir ese objeto a una secuencia de memoria. En afectar el uso de su objeto proxy como un intermediario.

No hay forma (como han dicho otros) de escribir un archivo de Excel directamente en la memoria.

Con el formato OpenXML de Excel 2007, podría usar el evento BeforeSave del libro de trabajo para tener un método personalizado que primero establezca el parámetro Cancelar del evento BeforeSave en True y luego serialice el paquete xml resultante (que representa el archivo) en un objeto en memoria.


Si solo necesita funcionalidades básicas de Excel, es posible que desee crear el Libro de trabajo como una secuencia Html. Hay otra pregunta sobre SO que sin manos esto .

Esto también resuelve algunos problemas (puede que aún no lo haya hecho) con respecto a la escalabilidad de su solución.