HOWTO · Csharp

Cómo exportar datos a un archivo de Excel con C#

Compara cómo preparar colecciones de objetos, matrices, DataTables y registros JSON de C# para un libro de Excel.

En esta página

Elige el método de exportación según el tipo de datos: asigna una colección de objetos a una hoja, coloca una matriz bidimensional en celdas, escribe un DataTable con los nombres de sus columnas o deserializa registros JSON antes de asignar sus campos. Cada opción explica la estructura prevista del libro. Los fragmentos específicos de cada biblioteca son ilustrativos y no están verificados: no se proporcionan el framework de destino, las versiones de los paquetes ni pruebas de ejecución. Antes de adaptarlos, consulta la documentación actual del proveedor para comprobar la compatibilidad de los paquetes, las firmas de la API y las condiciones de licencia.

Exportar datos a Excel usando C#

Para exportar registros similares a los de estudiantes, empieza con una colección de objetos que expongan los valores que quieres usar como columnas. Por ejemplo, cada objeto Student puede tener una propiedad name y otra propiedad numérica marks. Cada fila de la hoja representaría a un estudiante, y una fila de encabezados identificaría esos dos campos. Este formato resulta práctico si la aplicación ya trabaja con registros tipados y quieres que la hoja refleje sus propiedades.

La ilustración original menciona ExcelMapper y el paquete NuGet ExcelMapper. Considéralos una alternativa que debes investigar, no instrucciones de configuración verificadas. Consulta la documentación del proveedor del paquete para conocer el método de instalación vigente y cómo asignar una colección, elegir una hoja como ShaniData y guardar un archivo .xlsx. Indica una ruta de salida donde se pueda escribir el libro. El resultado previsto es una hoja con los nombres y las calificaciones de los estudiantes; aquí no se ha verificado ningún libro de salida ni captura de pantalla.

Exportar datos de matriz a Excel usando C#

Una matriz bidimensional es adecuada cuando los valores ya forman una tabla rectangular. Coloca los nombres de los campos en la primera fila —por ejemplo, Name, City, Gpa y Language— y cada registro en una fila posterior. Todas las filas deben tener el mismo número de valores para que cada dato quede bajo el encabezado correspondiente.

La ilustración suministrada usa Spire.Xls, crea una hoja llamada ShaniArray y llama a InsertArray con los argumentos de fila y columna 2 y 1. Esto indica que se pretende empezar en la segunda fila de la hoja y en la primera columna; antes de depender de ese comportamiento, comprueba en la documentación vigente cómo indexa la API. Como la matriz incluye una fila de encabezados, empezar en la segunda fila deja libre la primera para otro título o para mantenerla vacía. El encabezado original de esta sección mencionaba ExcelMapper, aunque las referencias del ejemplo eran a Spire.Xls; consulta la documentación del paquete que realmente elijas. El resultado previsto es una cuadrícula con encabezados y registros guardada en un libro de Excel.

Exportar datos de DataTable a Excel usando C#

Usa un DataTable cuando los nombres de las columnas y las filas ya estén representados en el modelo tabular de .NET. Define columnas como Roll Number, Student Name y Section, y luego agrega un DataRow por cada estudiante. La hoja debería mostrar los nombres de las columnas en la primera fila y los valores de la tabla debajo. Comprueba que cada fila proporcione un valor para todas las columnas declaradas.

La ilustración del artículo hace referencia a Spire.Xls y pretende insertar la tabla con los nombres de las columnas incluidos. Las instrucciones originales del paquete mencionaban incorrectamente ExcelMapper; consulta la documentación de la biblioteca que elijas para identificar el paquete correspondiente y la API vigente para insertar tablas. Aquí no se han verificado los argumentos de inserción ni la llamada para guardar el libro: comprueba qué significan, cuáles son las coordenadas de la hoja y qué ruta de salida usar con la versión instalada. Este método es útil si una consulta o la lógica existente de la aplicación ya produce un DataTable y quieres conservar en el libro los nombres de sus columnas.

Exportar datos de JSON a Excel usando C#

Los datos de ejemplo son una cadena JSON incluida directamente en el código, no un archivo JSON. Contienen registros numerados de estudiantes con los campos Name, Roll, GPA y Fyp. Deserializa esa cadena en una colección o un diccionario de objetos de estudiante y, después, asigna esos campos a columnas de la hoja, como Student Name, Roll No, GPA y FYP. Si los datos estuvieran en un archivo JSON, habría que leerlo por separado antes de deserializarlo; ese paso no forma parte de esta ilustración.

El código fuente menciona Newtonsoft.Json para la deserialización y GemBox.Spreadsheet para crear el libro. Mantén separadas esas tareas: inicializa el libro con la biblioteca de hojas de cálculo elegida, crea la hoja ShaniJSON, escribe los encabezados, agrega debajo cada registro y guarda el archivo. En la asignación original, la clave JSON Name se vincula a una propiedad de C# llamada Fname; asegúrate de que la configuración del serializador coincida con los nombres de las propiedades que uses realmente. El código alterna entre Workbook y ExcelFile, así que comprueba el tipo de libro y el método para guardarlo en la documentación actual de GemBox, en lugar de combinar fragmentos incompatibles. Comprueba también las condiciones de licencia y la compatibilidad del paquete JSON con tu proyecto. No se afirma que el código se haya compilado o ejecutado ni que se haya generado un libro.