2009-11-09 18 views
7

Necesito crear un archivo de Excel a través de C#. He leído algunos lugares que la creación de un documento XML es la manera más fácil de hacer esto? Necesito tener varias pestañas con nombre y ser capaz de especificar que las celdas en particular son texto, fecha y hora, numéricos, etc. ¿Alguna sugerencia o buenos ejemplos?Creación de archivos de Excel con C#

Respuesta

7

Se necesita el API System.IO.Packaging - esto le permitirá genere documentos .xlsx como se describe en Inserting Values into Excel 2007 Cells. El formato de Excel 2007 también puede ser utilizado por Excel 2003 y XP con el Microsoft Office Compatibility Pack gratuito instalado.

+0

@wcoenen -nice ediciones, gracias. – Murph

+0

¿Hay algún ejemplo de cómo crear un Excel con 'System.IO.Packaging'? No puedo encontrar nada en la documentación que trata con Excel. –

+0

@IanBoyd hay una manera mejor (ahora) de ver ClosedXML, que puede encontrar aquí: http://closedxml.codeplex.com/ – Murph

1

puede revisar si hay presente link

y spreadsheetgear

y CarlosAg Excel Xml Writer Library

+0

La biblioteca CarlosAg es buena pero tiene limitaciones y es superada por System.IO. Embalaje – Murph

+0

y ¿qué tal spreadsheetgear? –

+0

@astander - Spreadsheetgear no es algo gratis y, por lo tanto, no es algo que haya investigado. – Murph

0

Utilizamos una suite llamada Aspose en el trabajo. Tiene un gran componente de "Células" con todas las funciones que funciona de maravilla para nosotros.

2

Esto es frustrante y difícil de hacer, como mecanismo recomendado de Microsoft implica el uso Office, que está bien en el escritorio pero inútil para la web.

El formato binario de los archivos .xls es propiedad, por lo que Microsoft introdujo .xlsx archivos OpenXML en Office 2007.

El .xslx supuestamente es sencilla - es sólo un recipiente con cierre completo de archivos XML. Puede abrirlo con System.IO.Packaging y editarlo con System.Xml. Incluso hay un paquete de compatibilidad para versiones anteriores de la oficina.

Lamentablemente, simplemente no es simple: el formato de .xslx es horrible beyond words.

Parece que tomaron el formato binario optimizado de 16 bits .xls (diseñado originalmente para Windows 3.1) y lo serializaron en XML en lugar de en formato binario. Luego agregaron cambios realmente estúpidos, como los comentarios de la celda en realidad son VML - ¡un formato supuestamente descartado con IE5! También han agregado un montón de números mágicos y metadatos al XML para que no puedas usar ningún tipo de transformaciones en él, así que estás analizando ese lechón a mano.

Finalmente lo han convertido en un burro completo para depurar, y regularmente encontramos .xslx archivos que el paquete de compatibilidad informa como corruptos (sin razón aparente) pero esa versión reciente de Office puede abrirse bien.

Hay una muy buena biblioteca de código abierto por ahí: SpreadsheetLight. Es una biblioteca muy buena, pero cualquier cosa que requiera que profundices y amplíes los archivos .xslx será doloroso.

Cuestiones relacionadas