Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.
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 el sitio web de IronXL.
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.
Crear un nuevo proyecto en Visual Studio
Después de elegir la plantilla del proyecto, indique el nombre y la ubicación del proyecto.
Configurar el proyecto
A continuación, elige la siguiente estructura. Este proyecto hará uso de .NET Framework 4.7.
Selección de .NET Framework
Después de generar los archivos del proyecto, puedes abrir el archivo Form1.cs
en la vista de 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
Instalar el paquete IronXL en la Consola del Administrador 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.
Buscar e instalar el paquete IronXL en el Administrador de paquetes NuGet UI
Para este formulario, se coloca un control DataGridView
en el formulario para cargar el archivo de Excel necesario en el control DataGridView
.
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
El código anterior importa datos de Excel. Para proporcionar más contexto, supongamos que estamos diseñando una aplicación de 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.
Abrir un cuadro de diálogo para seleccionar un archivo de Excel
Luego, el método LoadExcel
se utiliza para cargar datos desde el archivo Excel. Este método permite cargar datos desde varias 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 de IronXL, se utiliza el método ToDataSet
para convertir los datos de la hoja de Excel en un conjunto de datos. Cada hoja del archivo Excel se convertirá en una tabla independiente dentro del conjunto de datos.
Luego, carga la tabla requerida del conjunto de datos en el DataGridView
. Para hacer esto, la propiedad DataSource
del DataGridView
se establece en el nuevo objeto DataTable
creado desde IronXL. Este paso permite la población de datos desde el archivo Excel al DataGridView
.
Mostrar datos del archivo Excel
Además, el nombre de encabezado de Excel también se asigna al encabezado de DataGridView
. Aún más, eliminamos cualquier columna de información adicional del DataTable
que contiene la columna de Excel como datos de fila. Esto garantiza que solo se muestren los datos relevantes en el DataGridView
.
Para más tutoriales sobre el uso de IronXL, haz clic en esta guía de instrucciones.
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. Puedes realizar tareas como ordenar cadenas o números, recortar y agregar datos, buscar y reemplazar valores, combinar y descombinar celdas, guardar archivos y más. También te permite validar los datos de la hoja de cálculo y definir tipos de datos de las celdas. Además, IronXL admite la lectura y escritura de archivos CSV.
IronXL está disponible para su compra por $749. 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 de licencias.