office net manipular manejo leer escribir desde crear asp archivos archivo abrir c# excel file-io office-interop

net - manejo de archivos excel en c#



Crear archivos de Excel desde C#sin oficina (7)

A menos que tenga Excel instalado en el Servidor / PC o use una herramienta externa (que es posible sin usar Interoperabilidad de Excel, vea Crear archivo de Excel (.XLS y .XLSX) desde C # ), fallará . El uso de la interoperabilidad requiere que Excel esté instalado.

Esta pregunta ya tiene una respuesta aquí:

Estoy escribiendo un programa que genera informes de Excel, actualmente utilizando la referencia Microsoft.Interop.Excel. Mi computadora dev tiene Excel, pero el usuario final puede o no tener Office instalado. ¿Esta herramienta fallará si Office no está instalada en la computadora de los usuarios finales, o este servicio interoperativo está separado de la aplicación real?


Hay un puñado de opciones:

  • NPOI - que es de fuente abierta y gratuita.
  • Aspose - Definitivamente no es gratis, sino robusto.
  • Spreadsheet ML : básicamente XML para crear hojas de cálculo.

El uso de Interop requerirá que el Excel esté instalado en la máquina desde la cual se está ejecutando. En una solución del lado del servidor, esto será horrible. En su lugar, debe usar una herramienta como las de arriba que le permita crear un archivo de Excel sin que se instale Excel.

Si el usuario no tiene Excel pero tiene una herramienta que leerá Excel (como Open Office), entonces obviamente podrán abrirlo. Microsoft tiene un visor de Excel gratuito disponible para aquellos usuarios que no tienen Excel.


Pruebe EPPlus si usa Excel 2007. Admite rangos, estilos de celda, gráficos, formas, imágenes y muchas otras cosas


Puede usar la clase ExcelStorage de la biblioteca FileHelpers , es muy fácil y simple ... necesitará Excel 2000 o posterior instalado en la máquina.

FileHelpers es una biblioteca .NET gratuita y fácil de usar para importar / exportar datos de longitud fija o registros delimitados en archivos, cadenas o flujos.


Si está interesado en crear archivos .xlsx (Office 2007 y posteriores), tiene suerte. Office 2007+ usa OpenXML que, a falta de una descripción más adecuada, es archivos XML dentro de un zip llamado .xlsx

Tome un archivo de Excel (2007+) y cámbiele el nombre a .zip, puede abrirlo y echar un vistazo. Si usa .NET 3.5, puede usar la biblioteca System.IO.Packaging para manipular las relaciones y el archivo zip mismo, y linq a xml para jugar con el xml (o simplemente DOM si está más cómodo).

De lo contrario, id recomienda DotNetZip , una potente biblioteca para la manipulación de archivos comprimidos.

OpenXMLDeveloper tiene muchos recursos sobre OpenXML y puedes encontrar más allí.

Si desea .xls (2003 y siguientes), tendrá que buscar en bibliotecas de terceros o quizás aprender el formato de archivo usted mismo para lograr esto sin Excel instalado.


Una interoperacion llama a otra cosa, es un ensamblado de interoperabilidad, por lo que se interopera con algo ... en este caso Excel, el Excel instalado real.

En este caso, sí, no se ejecutará porque depende de Excel, solo está llamando a funciones de Excel. Si no lo tienen instalado ... de mala suerte.

Hay métodos para generar sin Excel, siempre que el formato de archivo 2007 sea correcto, aquí hay algunos:

como dije, este es el formato de 2007 , normalmente en todo caso, eso es lo que rompe el trato.


Use OleDB, puede crear, leer y editar archivos de Excel con bastante facilidad. Lea los documentos de MSDN para obtener más información:

http://msdn.microsoft.com/en-us/library/aa288452(VS.71).aspx

He usado OleDB para leer de archivos de Excel y sé que puedes crearlos, pero no lo he hecho de primera mano.