Saltar al pie de página
USANDO IRONXL
Cómo convertir Excel en DataTable en C# sin oledb | IronXL

Cómo convertir Excel a DataTable en C# sin oledb

Microsoft Excel es un programa de hojas de cálculo robusto creado por Microsoft. Es una herramienta ampliamente utilizada para la organización, análisis y visualización de datos. Es parte de la suite Office de Microsoft. Debido a sus diversas características, Excel es una herramienta versátil que puede ser utilizada por profesionales, individuos, organizaciones y universidades.

Excel se utiliza ampliamente en una amplia gama de sectores, incluidos finanzas, contabilidad, análisis empresarial, análisis de datos, investigación, educación y más. Debido a su versatilidad y amplio conjunto de características, es la herramienta preferida para organizar, evaluar y presentar datos tanto en situaciones personales como profesionales. En este artículo, vamos a convertir Excel a un DataTable en C# sin conectividad OLEDB.

Cómo convertir Excel a DataTable en C# sin OLEDB

  1. Crea un nuevo proyecto de Visual Studio.
  2. Instalar la biblioteca requerida.
  3. Carga el archivo de Excel en un objeto.
  4. Convierte los datos de la hoja de Excel en un DataTable utilizando métodos específicos.
  5. Usa el DataTable según lo requerido.

Biblioteca IronXL

Una alternativa a Microsoft Interop para manejar archivos de Excel en programas .NET es IronXL. Mientras que Microsoft Interop requiere el uso de ensamblados Interop para conectarse con Excel, IronXL proporciona una forma más sencilla, eficiente y poderosa de manipular archivos de Excel programáticamente en entornos .NET.

Las siguientes son algunas ventajas de usar IronXL:

  • Rendimiento y Economía de Recursos: IronXL supera a Microsoft Interop en términos de rendimiento y eficiencia de recursos ya que no depende de que el programa Excel esté instalado en el PC.
  • Legibilidad y Sencillez: IronXL ofrece una API más simple, lo que facilita la lectura, escritura y manipulación de archivos de Excel sin las desventajas de Microsoft Interop.
  • Compatibilidad y Dependencia: IronXL elimina dependencias y posibles problemas de compatibilidad con diferentes versiones de Office o Excel al no necesitar que Microsoft Excel esté instalado en el PC.
  • Independencia de Plataforma: Mientras que Microsoft Interop está más vinculado a ciertas versiones de Microsoft Office, IronXL proporciona más flexibilidad y simplicidad de implementación en una gama más amplia de configuraciones y plataformas.

Debido a que IronXL es más rápido, más fácil de usar y requiere menos instalaciones de software de terceros, a menudo es una opción preferible para desarrolladores .NET que necesitan trabajar con archivos de Excel programáticamente. Sin embargo, factores como los detalles específicos del proyecto, la infraestructura preexistente y la familiaridad del usuario con cada biblioteca pueden afectar su elección.

Siempre considere las necesidades de su aplicación al elegir entre estas soluciones. Para más información sobre la biblioteca IronXL, visite este sitio web.

Crear un nuevo proyecto en Visual Studio

Para abrir Visual Studio, haga clic en Archivo desde el menú y seleccione "Nuevo Proyecto". Luego, elija "Aplicación de Windows Forms".

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 1

Después de seleccionar la ubicación del archivo, ingrese el nombre del proyecto en el área de texto apropiada. A continuación, haga clic en el botón "Crear" y elija el .NET Framework necesario, como se ve en el ejemplo a continuación.

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 2

El tipo de aplicación elegido dictará cómo se estructura el proyecto de Visual Studio. Para agregar código, puede ingresar al archivo Program.cs y construir o ejecutar la aplicación usando la consola, Windows o aplicación web.

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 3

A continuación, añada la biblioteca necesaria y pruebe el código.

Instalación de la biblioteca IronXL

Para instalar la biblioteca IronXL, abra la Consola del Administrador de Paquetes NuGet e ingrese el siguiente comando:

Install-Package IronXL.Excel

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 4

Alternativamente, puede usar el Administrador de Paquetes NuGet para buscar el paquete "IronXL". Esto mostrará una lista de paquetes NuGet relacionados con IronXL, de los cuales podrá elegir el que necesite.

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 5

Convertir archivo de Excel en tabla de datos

El siguiente código demuestra cómo leer un archivo de Excel y convertirlo en un DataTable después de instalar el paquete.

// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;

namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Exports data from an Excel file specified by the user through a file dialog.
        /// </summary>
        /// <param name="filename">The name of the file to export data from.</param>
        private void ExportData(string filename)
        {
            string importFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
            DialogResult result = openFileDialog1.ShowDialog();

            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                var excelDoc = WorkBook.Load(importFilePath);
                // Select the first worksheet
                var worksheet = excelDoc.WorkSheets[0];
                // Convert worksheet to a DataTable
                DataTable dt = worksheet.ToDataTable();
                // Bind DataTable to the DataGridView
                dataGridView1.DataSource = dt;
            }
        }
    }
}
// Necessary namespaces for IronXL and application namespaces
using IronXL;
using System;
using System.Data;
using System.Windows.Forms;

namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Exports data from an Excel file specified by the user through a file dialog.
        /// </summary>
        /// <param name="filename">The name of the file to export data from.</param>
        private void ExportData(string filename)
        {
            string importFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx";
            DialogResult result = openFileDialog1.ShowDialog();

            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                var excelDoc = WorkBook.Load(importFilePath);
                // Select the first worksheet
                var worksheet = excelDoc.WorkSheets[0];
                // Convert worksheet to a DataTable
                DataTable dt = worksheet.ToDataTable();
                // Bind DataTable to the DataGridView
                dataGridView1.DataSource = dt;
            }
        }
    }
}
' Necessary namespaces for IronXL and application namespaces
Imports IronXL
Imports System
Imports System.Data
Imports System.Windows.Forms

Namespace DataTableWindowsForm
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
		End Sub

		''' <summary>
		''' Exports data from an Excel file specified by the user through a file dialog.
		''' </summary>
		''' <param name="filename">The name of the file to export data from.</param>
		Private Sub ExportData(ByVal filename As String)
			Dim importFilePath As String = String.Empty
			openFileDialog1.Filter = "Excel (*.xlsx)|*.xlsx"
			Dim result As DialogResult = openFileDialog1.ShowDialog()

			If result = System.Windows.Forms.DialogResult.OK Then
				importFilePath = openFileDialog1.FileName
			End If

			If Not String.IsNullOrEmpty(importFilePath) Then
				' Load the Excel document
				Dim excelDoc = WorkBook.Load(importFilePath)
				' Select the first worksheet
				Dim worksheet = excelDoc.WorkSheets(0)
				' Convert worksheet to a DataTable
				Dim dt As DataTable = worksheet.ToDataTable()
				' Bind DataTable to the DataGridView
				dataGridView1.DataSource = dt
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

En el código anterior:

  • El Formulario de Windows carga los archivos de Excel y los convierte en un nuevo DataTable.
  • Utiliza un diálogo de archivo abierto para permitir al usuario elegir un archivo de Excel.
  • El método WorkBook.Load() de IronXL se utiliza para cargar el archivo de Excel en un objeto Workbook.
  • La primera hoja se selecciona usando un índice o nombre.
  • El método ToDataTable se utiliza para convertir los datos de la hoja en un DataTable.
  • El DataTable llenado se establece como la fuente de datos para un control DataGridView en el Formulario de Windows.

En la parte inferior, un formulario y un botón cargan el archivo de Excel en la aplicación.

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 6

Cuando el usuario hace clic en el botón "Cargar Excel", aparecerá un cuadro de diálogo que permitirá al usuario seleccionar un archivo.

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 7

Luego procesará el archivo seleccionado, lo convertirá en un DataTable y lo cargará en un DataGridView.

Cómo Convertir Excel a DataTable en C# Sin OLEDB: Figura 8

Aprende más sobre usar IronXL con DataTables.

Conclusión

IronXL es uno de los complementos de Excel más utilizados que no depende de ninguna biblioteca externa adicional. No es necesario instalar Microsoft Excel ya que es un programa autónomo. Puede manipular archivos de Excel de diversas maneras. En contraste, la biblioteca Interop requiere otras bibliotecas para analizar archivos y editar documentos de Word.

IronXL proporciona una solución integral para cualquier proceso de programación que utilice documentos de Microsoft Excel, incluidas operaciones como cálculos, clasificación, fusión y almacenamiento de archivos. Facilita el manejo de datos de Excel, la lectura y escritura de archivos de manera más eficiente.

Originalmente, IronXL tenía un precio de $799. Los usuarios pueden recibir actualizaciones de software y soporte pagando una tarifa de membresía anual. IronXL también ofrece protección contra la redistribución ilegal por una tarifa. Haga clic aquí para probar IronXL con una prueba gratuita para obtener información detallada sobre precios. Visite la página de inicio de Iron Software para obtener más información sobre [otros productos de software Iron](Iron Suite).

Preguntas Frecuentes

¿Cómo puedo convertir datos de Excel a un DataTable en C# sin usar OLEDB?

Para convertir datos de Excel a un DataTable en C# sin usar OLEDB, puedes usar la biblioteca IronXL. Primero, configura un nuevo proyecto de Visual Studio e instala IronXL. Carga el archivo Excel con el método WorkBook.Load(), selecciona la hoja de trabajo y luego usa el método ToDataTable para convertir los datos.

¿Cuál es la ventaja de usar IronXL sobre Microsoft Interop para operaciones con Excel?

IronXL ofrece mejor rendimiento, es eficiente en recursos y simplifica el proceso de manipulación de archivos Excel. No requiere que Microsoft Excel esté instalado, evitando así problemas de compatibilidad con diferentes versiones de Office.

¿Cómo instalo IronXL en mi proyecto C#?

Puedes instalar IronXL en tu proyecto C# abriendo la Consola del Administrador de Paquetes NuGet en Visual Studio y ejecutando el comando Install-Package IronXL. Alternativamente, puedes buscar IronXL en el Administrador de Paquetes NuGet e instalarlo directamente.

¿Es necesario tener instalado Microsoft Excel para usar IronXL?

No, no es necesario tener instalado Microsoft Excel para usar IronXL. Esta biblioteca funciona independientemente de Excel, eliminando cualquier problema de dependencia o compatibilidad.

¿Cuáles son los beneficios de convertir Excel a DataTable usando IronXL?

Convertir Excel a DataTable usando IronXL ofrece excelente rendimiento, facilidad de uso y no requiere instalaciones de software adicionales. Este método permite una manipulación eficiente de archivos Excel en aplicaciones .NET.

¿Puede IronXL manejar archivos Excel en diferentes plataformas?

Sí, IronXL es independiente de la plataforma y puede manejar archivos Excel en diferentes entornos sin requerir ninguna versión específica de Microsoft Excel.

¿Existe una manera de probar IronXL antes de comprarlo?

Sí, IronXL ofrece una versión de prueba gratuita que permite a los usuarios explorar sus características antes de realizar una compra. Puedes encontrar más información y descargar la prueba desde el sitio web de IronXL.

¿Qué tipos de proyectos se benefician más del uso de IronXL?

Proyectos que involucran manipulación de datos de Excel, como análisis de datos, aplicaciones de inteligencia empresarial y cualquier aplicación .NET que requiera procesamiento de archivos Excel, pueden beneficiarse enormemente del uso de IronXL.

¿Cómo gestiona IronXL la manipulación de archivos Excel programáticamente?

IronXL permite a los desarrolladores cargar, leer y manipular archivos Excel programáticamente a través de su API intuitiva, sin depender de los componentes instalados de Excel, convirtiéndolo en una herramienta eficiente para aplicaciones .NET.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más