Saltar al pie de página
USANDO IRONXL

Cómo convertir Excel en DataGridView en C#

IronXL Library Features

Using the IronXL library in C#, you can easily read and convert Microsoft Excel documents to CSV files. IronXL is a standalone .NET software library that can read various spreadsheet formats without requiring the installation of Microsoft Excel or depending on Microsoft Office Interop Excel.

IronXL is one of the leading Excel spreadsheet libraries for C#, compatible with both .NET Core and .NET Framework. It supports various .NET Frameworks, including Web Applications, Windows Forms applications, and Console Applications. Reading Excel files is fast and straightforward with IronXL. It supports a wide range of Excel file formats, including XLSX, XLS, CSV, TSV, XLST, XLSM, and others. You can import, edit, export data tables, export datasets, and perform many other operations. Exporting and saving files with different extensions is also possible.

With IronXL's intuitive C# API, you can effortlessly read, modify, and create Excel spreadsheet files in the .NET environment. It provides comprehensive support for .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS, and Azure.

IronXL can perform calculations like Microsoft Excel can and supports several column data formats, such as text, integers, formulas, dates, currencies, and percentages.

To learn more, click on the IronXL website.

Creating a New Project in Visual Studio

Before using the IronXL framework, a .NET project must be created in Visual Studio. Any version of Visual Studio will work; however, using the most recent version is recommended. You can create various project templates or a Windows Forms-like application, depending on your requirements. This tutorial will be using the Windows Forms Application to simplify things.

How to Convert Excel to Datagridview in C#, Figure 1: Create a new project in Visual Studio

Create a new project in Visual Studio

After choosing your project template, provide the name and location of the project.

How to Convert Excel to Datagridview in C#, Figure 2: Configure the project

Configure the project

Next, pick the following structure. This project will make use of .NET Framework 4.7.

How to Convert Excel to Datagridview in C#, Figure 3: .NET Framework selection

.NET Framework selection

After generating the project files, you can open the Form1.cs file in the designer view to insert the program code, design the interface, and build/run the program. Then, you will need to download the required IronXL library for the solution. You can download the package by using the following command in the package manager:

Install-Package IronXL.Excel

How to Convert Excel to Datagridview in C#, Figure 4: Install the IronXL package in the Package Manager Console

Install the IronXL package in the Package Manager Console

Alternatively, you can use the NuGet Package Manager to search for and download the "IronXL" package. The NuGet Package Manager provides a convenient way to manage dependencies in your project.

How to Convert Excel to Datagridview in C#, Figure 5: Search and install the IronXL package in NuGet Package Manager UI

Search and install the IronXL package in NuGet Package Manager UI

For this form, a DataGridView control is placed on the form to load the necessary Excel file into the DataGridView control.

Loading Data from an Excel File

IronXL is a powerful library for Excel that allows you to read Excel files with just a few lines of code. Below is an example code snippet that demonstrates how to import Excel data into a DataGridView:

using System;
using System.Windows.Forms;
using IronXL;

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();

            // Check if the user selected a file
            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            // Proceed if the file path is not empty
            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                WorkBook excelDoc = WorkBook.Load(importFilePath);

                // Convert the first sheet to a DataTable
                var dataTable = excelDoc.WorkSheets[0].ToDataTable();

                // Set the DataSource of dataGridView1 to the DataTable
                dataGridView1.DataSource = dataTable;
            }
        }
    }
}
using System;
using System.Windows.Forms;
using IronXL;

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();

            // Check if the user selected a file
            if (result == DialogResult.OK)
            {
                importFilePath = openFileDialog1.FileName;
            }

            // Proceed if the file path is not empty
            if (!string.IsNullOrEmpty(importFilePath))
            {
                // Load the Excel document
                WorkBook excelDoc = WorkBook.Load(importFilePath);

                // Convert the first sheet to a DataTable
                var dataTable = excelDoc.WorkSheets[0].ToDataTable();

                // Set the DataSource of dataGridView1 to the DataTable
                dataGridView1.DataSource = dataTable;
            }
        }
    }
}
Imports System
Imports System.Windows.Forms
Imports IronXL

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()

			' Check if the user selected a file
			If result = System.Windows.Forms.DialogResult.OK Then
				importFilePath = openFileDialog1.FileName
			End If

			' Proceed if the file path is not empty
			If Not String.IsNullOrEmpty(importFilePath) Then
				' Load the Excel document
				Dim excelDoc As WorkBook = WorkBook.Load(importFilePath)

				' Convert the first sheet to a DataTable
				Dim dataTable = excelDoc.WorkSheets(0).ToDataTable()

				' Set the DataSource of dataGridView1 to the DataTable
				dataGridView1.DataSource = dataTable
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

The above code imports data from Excel. To provide more context, let's assume we are designing a Windows Forms application with a DataGridView control and a button. The button will open a dialog to browse for the Excel file from a specific location. A custom code is added to filter and display only a limited number of files with a specific extension.

How to Convert Excel to Datagridview in C#, Figure 6: Open a dialog to select an Excel file

Open a dialog to select an Excel file

Then, the Load method is used to load data from the Excel file. This method allows loading data from various sources such as filenames, bytes, or streams. If the Excel file is password-protected, you can also pass the password as a parameter.

Once the Excel details are loaded into the IronXL object, the ToDataTable method is used to convert the Excel sheet data into a DataTable. Each sheet in the Excel file will be converted into a separate table.

Then, load the required table from the dataset into the DataGridView. To do this, the DataGridView's DataSource property is set to the newly created DataTable object from IronXL. This step allows the data population from the Excel file to the DataGridView.

How to Convert Excel to Datagridview in C#, Figure 7: Display data from the Excel file

Display data from the Excel file

Additionally, you may need to configure the DataGridView so it properly displays headers and the first row of data, depending on your specific requirements.

For more tutorials on using IronXL, click on this how-to guide.

Conclusion

IronXL is a highly popular Excel utility that does not rely on external libraries. It is an independent solution and does not require the installation of Microsoft Excel. It is compatible with various platforms.

With IronXL, you can accomplish a wide range of operations related to Microsoft Excel documents programmatically. You can perform tasks such as sorting strings or numbers, trimming and adding data, finding and replacing values, merging and unmerging cells, saving files, and more. It also allows you to validate spreadsheet data and define cell data types. Additionally, IronXL supports reading and writing CSV files.

IronXL is available for purchase with different licensing options. Customers also have the option to pay an annual membership fee for updates and product support. For an additional charge, IronXL provides unrestricted redistribution rights. To obtain more detailed pricing information, you can visit the licensing page.

Preguntas Frecuentes

¿Cómo puedo mostrar datos de Excel en un DataGridView en C# sin usar Interop?

Puede usar IronXL para leer datos de Excel y mostrarlos en un DataGridView convirtiendo una hoja de Excel en un DataTable y configurándolo como la fuente de datos para el DataGridView.

¿Cuáles son los beneficios de usar IronXL para operaciones de Excel en C#?

IronXL ofrece una solución independiente para operaciones de Excel sin necesidad de Microsoft Excel o Office Interop. Soporta múltiples plataformas y formatos, lo que lo hace versátil para diferentes aplicaciones en C#.

¿Cómo instalo IronXL en un proyecto de Visual Studio para el manejo de Excel?

Instale IronXL ejecutando Install-Package IronXL.Excel en la Consola del Administrador de Paquetes o usando la interfaz de usuario del Administrador de Paquetes NuGet en Visual Studio.

¿IronXL soporta la lectura y escritura en diferentes formatos de archivo de Excel?

Sí, IronXL soporta la lectura y escritura en varios formatos de archivo de Excel, incluyendo XLSX, XLS, CSV y TSV.

¿Puede usarse IronXL en aplicaciones multiplataforma?

Sí, IronXL es compatible con .NET Core, .NET Framework, Xamarin y otras plataformas, lo que lo hace adecuado para aplicaciones multiplataforma.

¿Cuál es el proceso para convertir datos de Excel en un DataTable usando IronXL?

Para convertir datos de Excel en un DataTable usando IronXL, lea el archivo de Excel en un objeto WorkBook, acceda a la hoja deseada y use los métodos de IronXL para extraer datos en un DataTable.

¿Es IronXL una solución rentable para la manipulación de datos de Excel en C#?

IronXL ofrece opciones de licencia flexibles, incluyendo membresías anuales y derechos de redistribución, lo que lo hace una solución rentable para la manipulación de datos de Excel en C#.

¿Qué tipo de operaciones puede realizar IronXL en archivos de Excel?

IronXL puede realizar una variedad de operaciones como leer, escribir, ordenar, recortar y fusionar celdas, así como manejar cálculos y formateo similar a Microsoft Excel.

¿Cómo maneja IronXL los datos de Excel para interfaces de usuario?

IronXL puede cargar datos de Excel de varias fuentes y convertirlos en un DataTable, facilitando la integración sin problemas en interfaces de usuario como DataGridView en aplicaciones de Windows Forms.

¿Dónde puedo encontrar más recursos sobre el uso de IronXL para operaciones de Excel?

Más tutoriales y recursos sobre el uso de IronXL se pueden encontrar en el sitio web de IronXL, incluyendo guías prácticas y documentación detallada.

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