COMPARACIóN CON OTROS COMPONENTES

EPPlus Leer Excel a Datatable C# (IronXL Tutorial)

Publicado en 16 de mayo, 2023
Compartir:

¿Buscas una librería Excel para leer datos Excel en una DataTable en C#?

La lectura de archivos Excel en una DataTable en C# tiene varias aplicaciones prácticas en diversos sectores y dominios, como el análisis de datos y la elaboración de informes, la importación de datos en bases de datos, la migración de datos, la validación y limpieza de datos, la integración con otros sistemas, la automatización y el procesamiento por lotes.

En este artículo, discutiremos y compararemos dos librerías Excel diferentes para .NET Core en C# que proporcionan esta característica para leer datos Excel y archivos Excel en una DataTable. Las bibliotecas son

  1. EPPlus

  2. IronXL

1. Biblioteca EPPlus

EPPlus es una potente biblioteca de código abierto para crear y manipular archivos Excel en C#. Proporciona una API sencilla e intuitiva que permite a los desarrolladores generar, leer y modificar hojas de cálculo Excel mediante programación, sin necesidad de instalar Microsoft Office o Excel en el servidor o en los equipos cliente. Con EPPlus, puede crear fácilmente hojas de cálculo, añadir datos, aplicar formato, crear gráficos y realizar otras operaciones en archivos Excel. Es compatible tanto con el antiguo formato .xls como con el más reciente .xlsx y ofrece un rendimiento y una gestión de la memoria eficientes. Si necesita generar informes dinámicos, importar/exportar datos o automatizar tareas relacionadas con Excel, EPPlus le ofrece un completo conjunto de funciones y capacidades para simplificar el manejo de archivos Excel en aplicaciones C#.

2. IronXL

IronXL es una biblioteca potente y versátil que ofrece a los desarrolladores la posibilidad de leer, escribir y manipular archivos Excel sin esfuerzo dentro de sus aplicaciones .NET. Gracias a su intuitiva y completa API, IronXL simplifica el complejo proceso de trabajar con hojas de cálculo, permitiendo a los desarrolladores extraer datos, realizar cálculos, crear gráficos y generar informes con facilidad. Ya se trate de automatizar tareas de importación y exportación de datos, realizar análisis de datos o crear plantillas dinámicas de Excel, IronXL proporciona una solución robusta que ahorra a los desarrolladores tiempo y esfuerzo valiosos, al tiempo que garantiza la precisión y fiabilidad en el manejo de datos de Excel. Gracias a su perfecta integración, su extensa documentación y su amplia gama de funciones, IronXL se convierte en la opción preferida de los desarrolladores que buscan una herramienta fiable y eficaz para superar los retos asociados a la manipulación de archivos Excel en el .NET Framework.

3. Instalación de la biblioteca EPPlus

Para instalar la biblioteca EPPlus en su proyecto C#, primero debe crear un nuevo proyecto basado en consola en Visual Studio. Después, puede instalarlo fácilmente utilizando el gestor de paquetes NuGet.

Una vez creado el nuevo proyecto, ve a Herramientas y pasa el ratón por encima del Gestor de paquetes NuGet, luego selecciona "Gestionar paquetes NuGet para la solución".

EPPlus Leer Excel a DataTable C# (Tutorial IronXL) Figura 1

Aparecerá una nueva ventana. En esta nueva ventana, vaya a la opción "Examinar" y busque "EPPlus". Aparecerá una lista de paquetes y deberás seleccionar la última versión estable. A continuación, haga clic en el botón "Instalar" de la derecha para instalar la biblioteca EPPlus.

EPPlus Leer Excel a DataTable C# (Tutorial IronXL) Figura 2

Así de fácil, EPPlus se añadirá a su proyecto.

4. Instalación de IronXL

Hay muchos métodos para instalar IronXL, pero en esta sección, sólo discutiremos la instalación de IronXL utilizando el Administrador de paquetes NuGet.

Al igual que en la sección 3, cree un nuevo proyecto y vaya a "Herramientas" y abra el Gestor de paquetes NuGet para soluciones.

En la nueva ventana, introduzca la palabra clave "IronXL" en la barra de búsqueda. Aparecerá una lista y podrá seleccionar el paquete IronXL que desee instalar. A continuación, haga clic en el botón "Instalar" para instalar IronXL en su proyecto.

EPPlus Leer Excel a DataTable C# (Tutorial IronXL) Figura 3

Ahora IronXL está listo para su uso.

5. Lectura de archivos Excel y datos en una tabla de datos utilizando la biblioteca EPPlus

En esta sección, examinaremos el código para leer Excel como una DataTable utilizando la librería Excel del paquete C# EPPlus.

Necesitamos un fichero Excel de ejemplo para leerlo como DataTable. Para ello, generaremos un archivo Excel de ejemplo.

EPPlus Leer Excel a DataTable C# (Tutorial IronXL) Figura 4

A continuación se muestra el código para leer el archivo de Excel como un DataTable.


    using OfficeOpenXml;
    using System;
    using System.Data;
    using System.IO;

    class Program
    {
        static void Main(string [] args)
        {
            var path = @"sample.xlsx";
            var data = ExcelDataToDataTable(path, "Table");
            foreach (DataRow row in data.Rows)
            {
                foreach (var wsrow in row.ItemArray)
                {
                    Console.Write(wsrow);
                }
                Console.WriteLine();
            }

        }
        public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
        {
            DataTable dt = new DataTable();
            var fi = new FileInfo(filePath);
            // Check if the file exists
            if (!fi.Exists)
                throw new Exception("File " + filePath + " Does Not Exists");

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var xlPackage = new ExcelPackage(fi);
            // get the first worksheet in the workbook
            var worksheet = xlPackage.Workbook.Worksheets [sheetName];

            dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = true;
            });

            return dt;
        }
    }

    using OfficeOpenXml;
    using System;
    using System.Data;
    using System.IO;

    class Program
    {
        static void Main(string [] args)
        {
            var path = @"sample.xlsx";
            var data = ExcelDataToDataTable(path, "Table");
            foreach (DataRow row in data.Rows)
            {
                foreach (var wsrow in row.ItemArray)
                {
                    Console.Write(wsrow);
                }
                Console.WriteLine();
            }

        }
        public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
        {
            DataTable dt = new DataTable();
            var fi = new FileInfo(filePath);
            // Check if the file exists
            if (!fi.Exists)
                throw new Exception("File " + filePath + " Does Not Exists");

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var xlPackage = new ExcelPackage(fi);
            // get the first worksheet in the workbook
            var worksheet = xlPackage.Workbook.Worksheets [sheetName];

            dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = true;
            });

            return dt;
        }
    }
Imports OfficeOpenXml
	Imports System
	Imports System.Data
	Imports System.IO

	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim path = "sample.xlsx"
			Dim data = ExcelDataToDataTable(path, "Table")
			For Each row As DataRow In data.Rows
				For Each wsrow In row.ItemArray
					Console.Write(wsrow)
				Next wsrow
				Console.WriteLine()
			Next row

		End Sub
		Public Shared Function ExcelDataToDataTable(ByVal filePath As String, ByVal sheetName As String, Optional ByVal hasHeader As Boolean = True) As DataTable
			Dim dt As New DataTable()
			Dim fi = New FileInfo(filePath)
			' Check if the file exists
			If Not fi.Exists Then
				Throw New Exception("File " & filePath & " Does Not Exists")
			End If

			ExcelPackage.LicenseContext = LicenseContext.NonCommercial
			Dim xlPackage = New ExcelPackage(fi)
			' get the first worksheet in the workbook
			Dim worksheet = xlPackage.Workbook.Worksheets (sheetName)

			dt = worksheet.Cells (1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
				c.FirstRowIsColumnNames = True
			End Sub)

			Return dt
		End Function
	End Class
VB   C#

El código anterior llama a un método que toma parámetros de entrada como la ruta del archivo y el nombre de la hoja, y devuelve una DataTable como salida.

5.1. Salida

EPPlus Leer Excel a DataTable C# (Tutorial IronXL) Figura 5

6. Lectura de Archivos Excel como una Tabla de Datos usando IronXL

Convertir una hoja de Excel y leerla como una DataTable es bastante fácil usando IronXL, con sólo unas pocas líneas de código. Además, utilizaremos el archivo Excel anterior como entrada.

El siguiente ejemplo de código realiza la misma funcionalidad que el código anterior, pero utilizando IronXL.


    using IronXL;
    using System;
    using System.Data;

    WorkBook workBook = WorkBook.Load("sample.xlsx");

    WorkSheet workSheet = workBook.DefaultWorkSheet;

    DataTable Table = workSheet.ToDataTable(true);

    foreach (DataRow row in Table.Rows)
    {
        for (int row = 0; row  < dataTable.Columns.Count; row ++)
        {
            Console.Write(row [row ] + " ");
        }
        Console.WriteLine();
    }

    using IronXL;
    using System;
    using System.Data;

    WorkBook workBook = WorkBook.Load("sample.xlsx");

    WorkSheet workSheet = workBook.DefaultWorkSheet;

    DataTable Table = workSheet.ToDataTable(true);

    foreach (DataRow row in Table.Rows)
    {
        for (int row = 0; row  < dataTable.Columns.Count; row ++)
        {
            Console.Write(row [row ] + " ");
        }
        Console.WriteLine();
    }
Imports IronXL
	Imports System
	Imports System.Data

	Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

	Private workSheet As WorkSheet = workBook.DefaultWorkSheet

	Private Table As DataTable = workSheet.ToDataTable(True)

	For Each row As DataRow In Table.Rows
		For row As Integer = 0 To dataTable.Columns.Count - 1
			Console.Write(row (row) & " ")
		Next row
		Console.WriteLine()
	Next row
VB   C#

En el ejemplo de código anterior, simplemente estamos cargando el archivo Excel y convirtiéndolo en una DataTable utilizando el comando workSheet.ToDataTable(verdadero) método.

6.1 Salida

EPPlus Leer Excel a DataTable C# (Tutorial IronXL) Figura 6

7. Conclusión

En conclusión, cuando se trata de leer archivos Excel y convertirlos a DataTable en C#, tanto EPPlus como IronXL son excelentes librerías que ofrecen potentes características y simplifican el proceso.

EPPlus es una biblioteca de código abierto que proporciona una API sencilla para generar, leer y modificar hojas de cálculo de Excel mediante programación. Es compatible con los formatos .xls y .xlsx y ofrece un rendimiento y una gestión de la memoria eficientes.

Por otro lado,IronXL es una biblioteca versátil que permite a los desarrolladores trabajar sin esfuerzo con archivos Excel en aplicaciones .NET. Ofrece una API intuitiva y funciones completas para extraer datos, realizar cálculos, crear gráficos y generar informes. IronXL simplifica las tareas complejas de manipulación de archivos de Excel, como la importación y exportación de datos, el análisis de datos y la creación de plantillas dinámicas.

Al comparar los ejemplos de código de IronXL y EPPlus, observamos que el código de EPPlus es bastante largo, complejo y difícil de leer. Por otra parte, el código IronXL es bastante sencillo y fácil de leer. IronXL utiliza la hoja de trabajo por defecto, pero en EPPlus, usted necesita dar el nombre de la hoja de trabajo, de lo contrario, obtendrá un error.

En resumen, yo recomendaría IronXL sobre EPPlus para la manipulación de archivos de Excel y la lectura de archivos de Excel como DataTables. Además, IronXL ofrece muchas más funciones que EPPlus en el manejo de archivos Excel con código simple. Para obtener más tutoriales sobre IronXL, visite lo siguienteenlace.

< ANTERIOR
Tutorial de archivo Zip para desarrolladores de C# que utilizan IronXL
SIGUIENTE >
Comparación entre IronXL y FastExcel para .NET

¿Listo para empezar? Versión: 2024.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,111,773 Ver licencias >