USO DE IRONXL

Cómo convertir Excel a Datagridview en C#

Actualizado 23 de mayo, 2023
Compartir:

Este blog comparará y contrastará cómo interactuar con documentos de Microsoft Excel mediante programación en tecnologías .NET, ya sea en el formato CSV o en el formato estándar de Excel, utilizando una de las bibliotecas más populares, IronXL.

Características de la biblioteca IronXL

Utilizando la biblioteca IronXL en C#, puede leer y convertir fácilmente documentos de Microsoft Excel en archivos CSV. IronXL es una biblioteca de software .NET independiente que puede leer varios formatos de hoja de cálculo sin necesidad de instalar Microsoft Excel ni depender de Microsoft Office Interop Excel.

IronXL es una de las principales bibliotecas de hojas de cálculo de Excel para C#, compatible tanto con .NET Core como con .NET Framework. Es compatible con varios marcos .NET, incluidas aplicaciones Web, aplicaciones Windows Forms y aplicaciones de consola. Leer archivos Excel es rápido y sencillo con IronXL. Es compatible con una amplia gama de formatos de archivo de Excel, incluidos XLSX, XLS, CSV, TSV, XLST, XLSM y otros. Puede importar, editar, exportar tablas de datos, exportar conjuntos de datos y realizar muchas otras operaciones. También es posible exportar y guardar archivos con diferentes extensiones.

Con la intuitiva API C# de IronXL, podrá leer, modificar y crear archivos de hojas de cálculo Excel sin esfuerzo en el entorno .NET. Ofrece compatibilidad completa con .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS y Azure.

IronXL puede realizar cálculos como Microsoft Excel y admite varios formatos de datos de columna, como texto, números enteros, fórmulas, fechas, divisas y porcentajes.

Para obtener más información, haga clic en Sitio web de IronXL.

Creación de un nuevo proyecto en Visual Studio

Antes de utilizar el marco IronXL, debe crearse un proyecto .NET en Visual Studio. Funcionará cualquier versión de Visual Studio, aunque se recomienda utilizar la más reciente. Puede crear varias plantillas de proyecto o una aplicación similar a Windows Forms, en función de sus necesidades. Este tutorial utilizará la aplicación Windows Forms para simplificar las cosas.

Cómo convertir Excel a Datagridview en C#, Figura 1: Crear un nuevo proyecto en Visual Studio

Crea un nuevo proyecto en Visual Studio.

Después de elegir la plantilla del proyecto, indique el nombre y la ubicación del proyecto.

Cómo convertir Excel a Datagridview en C#, Figura 2: Configurar el proyecto

Configurar el proyecto

A continuación, elige la siguiente estructura. Este proyecto hará uso de .NET Framework 4.7.

Cómo convertir Excel a Datagridview en C#, Figura 3: Selección .NET Framework

Selección del marco .NET

Después de generar los archivos del proyecto, puede abrir el archivo Form1.cs en la vista del diseñador para insertar el código del programa, diseñar la interfaz y construir/ejecutar el programa. A continuación, deberá descargar la biblioteca IronXL necesaria para la solución. Puede descargar el paquete utilizando el siguiente código en el gestor de paquetes:

Install-Package IronXL.Excel

Cómo convertir Excel a Datagridview en C#, Figura 4: Instalar el paquete IronXL en la Consola del Administrador de Paquetes

Instala el paquete IronXL en la Consola del Gestor de Paquetes

También puede utilizar el gestor de paquetes NuGet para buscar y descargar el paquete "IronXL". El gestor de paquetes NuGet proporciona una forma cómoda de gestionar las dependencias en su proyecto.

Cómo convertir Excel a Datagridview en C#, Figura 5: Buscar e instalar el paquete IronXL en NuGet Package Manager UI

**Busque e instale el paquete IronXL en la interfaz de usuario del gestor de paquetes NuGet.

Para este formulario, se coloca un control DataGridView en el formulario para cargar el archivo Excel necesario en el control DataGridView.

Carga de datos desde un archivo Excel

IronXL es una potente librería para Excel que permite leer archivos Excel con sólo unas pocas líneas de código. A continuación se muestra un fragmento de código de ejemplo que demuestra cómo importar datos de Excel en un DataGridView:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            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 Edataset = exceldoc.ToDataSet().Tables [0];
                for (int i = 0; i < Edataset.Columns.Count; i++)
                {
                    Edataset.Columns [i].ColumnName = Edataset.Rows [0].ItemArray [i].ToString();
                    //dataGridView1.Rows [i].HeaderCell.Value = Edataset.Rows [0].ItemArray [i];
                }
                dataGridView1.DataSource = Edataset;
                dataGridView1.Rows.RemoveAt(0);
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
namespace DataTableWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            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 Edataset = exceldoc.ToDataSet().Tables [0];
                for (int i = 0; i < Edataset.Columns.Count; i++)
                {
                    Edataset.Columns [i].ColumnName = Edataset.Rows [0].ItemArray [i].ToString();
                    //dataGridView1.Rows [i].HeaderCell.Value = Edataset.Rows [0].ItemArray [i];
                }
                dataGridView1.DataSource = Edataset;
                dataGridView1.Rows.RemoveAt(0);
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.Window
Namespace DataTableWindowsForm
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
			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 Edataset = exceldoc.ToDataSet().Tables (0)
				For i As Integer = 0 To Edataset.Columns.Count - 1
					Edataset.Columns (i).ColumnName = Edataset.Rows (0).ItemArray (i).ToString()
					'dataGridView1.Rows [i].HeaderCell.Value = Edataset.Rows [0].ItemArray [i];
				Next i
				dataGridView1.DataSource = Edataset
				dataGridView1.Rows.RemoveAt(0)
			End If
		End Sub
	End Class
End Namespace
VB   C#

El código anterior importa datos de Excel. Para proporcionar más contexto, supongamos que estamos diseñando una aplicación Windows Forms con un control DataGridView y un botón. El botón abrirá un cuadro de diálogo para buscar el archivo Excel desde una ubicación específica. Se añade un código personalizado para filtrar y mostrar sólo un número limitado de archivos con una extensión específica.

Cómo convertir Excel a Datagridview en C#, Figura 6: Abrir un diálogo para seleccionar un archivo Excel

Abrir un cuadro de diálogo para seleccionar un archivo Excel

Entonces, el cargarExcel se utiliza para cargar datos del archivo Excel. Este método permite cargar datos de diversas fuentes, como nombres de archivo, bytes o flujos. Si el archivo Excel está protegido por contraseña, también podemos pasar la contraseña como parámetro.

Una vez que los detalles de Excel se cargan en el objeto IronXL, el ToDataSet se utiliza para convertir los datos de la hoja Excel en un conjunto de datos. Cada hoja del archivo Excel se convertirá en una tabla independiente dentro del conjunto de datos.

A continuación, cargue la tabla requerida del conjunto de datos en el DataGridView. Para ello, la propiedad DataSource del DataGridView se establece en el objeto DataTable recién creado en IronXL. Este paso permite la población de datos desde el archivo Excel a la DataGridView.

Cómo convertir Excel a Datagridview en C#, Figura 7: Mostrar datos del archivo Excel

Visualizar datos del archivo Excel

Además, el nombre de la cabecera Excel también se asigna a la cabecera DataGridView. Además, eliminamos cualquier columna de información adicional de la DataTable que contiene la columna de Excel como datos de fila. Esto garantiza que sólo se muestren los datos relevantes en la DataGridView.

Para más tutoriales sobre el uso de IronXL, haga clic en este enlace guía práctica.

Conclusión

IronXL es una utilidad de Excel muy popular que no depende de bibliotecas externas. Es una solución independiente y no requiere la instalación de Microsoft Excel. Es compatible con varias plataformas.

Con IronXL, puede realizar una amplia gama de operaciones relacionadas con documentos de Microsoft Excel mediante programación. Puede realizar tareas como ordenar cadenas o números, recortar y añadir datos, buscar y sustituir valores, fusión y separación de celdas guardar archivos, etc. También permite validar datos de hojas de cálculo y definir los tipos de datos de las celdas. Además, IronXL es compatible con la lectura y escribir archivos CSV.

IronXL está disponible para su compra por $599. Los clientes también tienen la opción de pagar una cuota anual para recibir actualizaciones y asistencia sobre el producto. Por un cargo adicional, IronXL proporciona derechos de redistribución sin restricciones. Para obtener información más detallada sobre precios, puede visitar la página página de licencias.

< ANTERIOR
Cómo Exportar Grandes Datos de Datatable a Excel en C#
SIGUIENTE >
Cómo exportar a CSV en Blazor

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

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