USO DE IRONXL

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

Actualizado 4 de enero, 2024
Compartir:

Introducción

Microsoft Excel es un robusto programa de hojas de cálculo creado por Microsoft. Es una herramienta muy utilizada para la organización, el análisis y la visualización de datos. Forma parte del paquete Office de Microsoft. Gracias a sus diversas funciones, Excel es una herramienta versátil que pueden utilizar profesionales, particulares, organizaciones y universidades.

Excel se utiliza ampliamente en una gran variedad de sectores, como las finanzas, la contabilidad, el análisis empresarial, el análisis de datos, la investigación y la educación, entre otros. Por su versatilidad y su amplio conjunto de funciones, es la herramienta de referencia para organizar, evaluar y presentar datos tanto en situaciones personales como profesionales. En este artículo, vamos a convertir Excel a datatable en C# sin conectividad OLEDB.

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

  1. Crear un nuevo proyecto de Visual Studio
  2. Instale la biblioteca necesaria.
  3. Cargue el archivo Excel en el objeto.
  4. Convertir los datos de la hoja Excel en datatable utilizando el método específico
  5. Y utilice la tabla de datos según sea necesario.

Biblioteca IronXL

Una alternativa a Microsoft Interop para manejar archivos Excel en programas .NET es IronXL. Mientras que Microsoft Interop requiere el uso de los ensamblados Interop para conectar con Excel, IronXL proporciona una forma más sencilla, eficaz y potente de manipular archivos de Excel mediante programación en entornos .NET.

A continuación se enumeran algunas de las ventajas de utilizar IronXL:

  • Rendimiento y economía de recursos: IronXL supera a Microsoft Interop en términos de rendimiento y economía de recursos, ya que no depende de que el programa Excel esté instalado en el PC.
  • Legibilidad y simplicidad: IronXL ofrece una API más sencilla que facilita la lectura, escritura y manipulación de archivos Excel sin los inconvenientes de Microsoft Interop.
  • Compatibilidad y dependencia: IronXL elimina las dependencias y los posibles problemas de compatibilidad con diferentes versiones de Office o Excel al no necesitar que Microsoft Excel esté instalado en el PC.
  • Independencia de la plataforma: Mientras que Microsoft Interop está más estrechamente vinculado a determinadas versiones de Microsoft Office, IronXL proporciona más flexibilidad y sencillez de implantación en una gama más amplia de entornos y plataformas.

    Dado que IronXL es más rápido, más fácil de usar y requiere menos instalaciones de software de terceros, suele ser la opción preferida para los desarrolladores .NET que necesitan trabajar con archivos Excel mediante programación. Sin embargo, factores como las características específicas del proyecto, la infraestructura preexistente y la familiaridad del usuario con cada biblioteca pueden afectar a su elección entre IronXL y Microsoft Interop.

    Recuerde en todo momento las necesidades de su aplicación al elegir entre estas soluciones. Para más información sobre la biblioteca IronXL, haga clic aquí sitio web.

Creación de un nuevo proyecto en Visual Studio

Para abrir el programa Visual Studio, haga clic en Archivo del menú Archivo. Tras seleccionar "nuevo proyecto", elige "Aplicación de formulario de ventana".

Cómo convertir Excel a Datatable en C# sin oledb: Figura 1

Una vez seleccionada la ubicación del archivo, introduzca el nombre del proyecto en el área de texto correspondiente. A continuación, haga clic en el botón Crear y elija el .NET Framework necesario, como se ve en el ejemplo siguiente.

Cómo convertir Excel a Datatable en C# sin oledb: Figura 2

La aplicación elegida determinará cómo se estructura el proyecto de Visual Studio. Para añadir código, puede entrar en el archivo program.cs y construir o ejecutar la aplicación utilizando la consola, Windows o la aplicación web.

Cómo convertir Excel a Datatable en C# sin oledb: Figura 3

A continuación, se puede añadir la biblioteca y probar el código.

Instalación de la biblioteca IronXL

Instala la biblioteca IronXL, ya que es necesaria para el próximo parche. Por último, inicie la consola del gestor de paquetes NuGet e introduzca el siguiente comando para completarlo:

Install-Package IronXL.Excel

Cómo convertir Excel a Datatable en C# sin oledb: Figura 4

Como alternativa, puede utilizar el Gestor de paquetes NuGet para buscar el paquete "IronXL". Podemos elegir qué paquete NuGet tiene que ser descargado de esta lista de todos los conectados a IronXL.

Cómo convertir Excel a Datatable en C# sin oledb: Figura 5

Convertir un archivo Excel en una tabla de datos

El siguiente código puede utilizarse para leer un archivo Excel y convertirlo en una DataTable una vez instalado el paquete.

using IronXL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// En el método Exportar datos pase la ruta del fichero como parámetro
        /// </summary>
        /// <param name="filname"></param>
        private void ExportData(string filname)
        {
            string ImportFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
            DialogResult Result = openFileDialog1.ShowDialog();
            if (Result == DialogResult.OK)
            {
                ImportFilePath = openFileDialog1.FileName;
            }
            if (ImportFilePath != string.Empty)
            {
                var exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath);
                var worksheet = exceldoc.WorkSheets [0];
                datatable dt = worksheet.ToDataTable();
                dataGridView1.DataSource = dt;
            }
        }
}
}
using IronXL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// En el método Exportar datos pase la ruta del fichero como parámetro
        /// </summary>
        /// <param name="filname"></param>
        private void ExportData(string filname)
        {
            string ImportFilePath = string.Empty;
            openFileDialog1.Filter = "Excel (*.xlsx)
*.xlsx";
            DialogResult Result = openFileDialog1.ShowDialog();
            if (Result == DialogResult.OK)
            {
                ImportFilePath = openFileDialog1.FileName;
            }
            if (ImportFilePath != string.Empty)
            {
                var exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath);
                var worksheet = exceldoc.WorkSheets [0];
                datatable dt = worksheet.ToDataTable();
                dataGridView1.DataSource = dt;
            }
        }
}
}
Imports IronXL
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Namespace DataTableWindowsForm
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
		End Sub
		''' <summary>
		''' En el método Exportar datos pase la ruta del fichero como parámetro
		''' </summary>
		''' <param name="filname"></param>
		Private Sub ExportData(ByVal filname 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 ImportFilePath <> String.Empty Then
				Dim exceldoc = IronXL.WorkBook.LoadExcel(ImportFilePath)
				Dim worksheet = exceldoc.WorkSheets (0)
				Dim dt As datatable = worksheet.ToDataTable()
				dataGridView1.DataSource = dt
			End If
		End Sub
	End Class
End Namespace
VB   C#

Desde el código anterior, estamos utilizando el formulario de Windows para cargar los archivos de Excel y convertirlos en un nuevo conjunto de datos, a continuación, los estamos cargando en el formulario de Windows datagrid. En el código anterior, en primer lugar, utilizamos el controlador de diálogo de abrir archivo para cargar el archivo xls desde el sistema de archivos.

A continuación, con la ayuda del libro de trabajo IronXL y el método Loadexcel file, pasamos el nombre del archivo como un parámetro que podemos obtener del controlador de diálogo de abrir archivo. Nos ayuda a importar archivos Excel al objeto libro. A continuación, seleccionamos la hoja de cálculo de Excel utilizando el valor del índice o podemos utilizar el nombre de la hoja de Excel para seleccionar la hoja de cálculo. Con la ayuda del método disponible ToDataTable, podemos convertir fácilmente los datos del fichero Excel en la nueva tabla de datos.

Después de convertir el archivo Excel en un datatable lo cargamos en el controlador datagrid que está disponible en el formulario de Windows. A continuación, tenemos un formulario y un botón para cargar el archivo Excel.

Cómo convertir Excel a Datatable en C# sin oledb: Figura 6

Cuando el usuario haga clic en el botón Cargar Excel, aparecerá un cuadro de diálogo que nos permitirá cargar el archivo.

Cómo convertir Excel a Datatable en C# sin oledb: Figura 7

Procesará los archivos, los convertirá en una nueva tabla de datos y los cargará en la cuadrícula de datos.

Cómo convertir Excel a Datatable en C# sin oledb: Figura 8

Para saber más sobre la tabla de datos IronXL, consulte el enlace aquí.

Conclusión

IronXL es uno de los complementos de Excel más utilizados. No depende de ninguna biblioteca externa adicional. No es necesario instalar Microsoft Excel porque es un programa autónomo. Utiliza distintos canales para funcionar. En cambio, la biblioteca Interop necesita otras bibliotecas para analizar los archivos y editar los documentos Word.

IronXL es una solución integral para cualquier proceso de programación que utilice documentos de Microsoft Excel. Entre las operaciones posibles están los cálculos, la ordenación de cadenas o números, la poda, la suma, la búsqueda y sustitución, la fusión y la separación, y el almacenamiento de archivos. Se pueden crear y evaluar datos de hojas de cálculo, así como crear nuevos tipos de datos de celdas. Facilita el manejo de datos de Excel y la lectura y escritura de archivos.

IronXL tenía originalmente un precio de $599. Como alternativa, los usuarios pueden obtener actualizaciones de software y asistencia pagando una cuota de afiliación de un año. IronXL ofrece protección contra la redistribución ilegal a cambio de una tarifa. Haga clic aquí para experimentar IronXL con un prueba gratuita para obtener información más detallada sobre precios. Para más información sobre los productos de software de Iron, consulte aquí.

< ANTERIOR
Biblioteca Excel C# sin Office (Tutorial para principiantes)
SIGUIENTE >
Cómo Concatenar o Combinar Archivos Excel en C# Combinar XLS

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 897,936 Ver licencias >
123