Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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 enSitio 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.
Crea 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 del .NET Framework
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
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.
**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
.
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 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 Excel
Entonces, elcargarExcel 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, elToDataSet
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
.
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 enlaceguía práctica.
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 celdasguardar archivos, etc. También permite validar datos de hojas de cálculo ydefinir los tipos de datos de las celdas. Además, IronXL es compatible con la lectura yescribir 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áginapágina de licencias.
9 productos API .NET para sus documentos de oficina