Cómo abrir un archivo de Excel y escribir datos en C#
Este artículo explorará la biblioteca IronXL para demostrar cómo abrir un archivo de Microsoft Excel y escribir datos en él en una aplicación de consola C#.
IronXL - Una biblioteca de Excel
IronXL es una biblioteca de Excel para .NET que facilita la creación, lectura y edición de archivos Excel en aplicaciones C#. Ofrece un rendimiento excepcional y una salida precisa. La biblioteca admite todos los formatos de archivos de libro de trabajo de Excel, incluidos XLS, XLSX, XLSM, CSV y TSV. Además, permite guardar o exportar datos en formatos como JSON, HTML, Binary, Byte Array, DataSet o DataTable.
Con IronXL, los desarrolladores pueden trabajar con hojas de cálculo y rangos de celdas sin problemas. Ofrece la capacidad de editar fórmulas y recalcularlas fácilmente dentro de una hoja. Ordenar datos basado en rango, columna o fila es sencillo. La biblioteca proporciona funciones para modificar diseños, como congelar paneles, ajustar automáticamente filas/columnas, y agregar/eliminar filas/columnas.
IronXL también permite la protección de archivos Excel con contraseñas de usuario y permisos para editar. Otra característica notable es la capacidad de agregar, eliminar y extraer imágenes de hojas de cálculo de Excel. La biblioteca ofrece una amplia gama de funciones de Excel, admitiendo varios formatos de datos de celda. Estas características hacen de IronXL una de las APIs más amigables para trabajar con Excel.
Una de las ventajas significativas de IronXL es que no requiere que Microsoft Excel esté instalado en la máquina, eliminando la necesidad de Interop de Office o cualquier otra dependencia. Es compatible con múltiples plataformas y admite .NET 7, 6 y 5. También es compatible con .NET Core 2 y 3, así como con .NET Framework 4.5 y versiones posteriores para trabajar con hojas de cálculo de Excel.
Crear una aplicación de consola
Se recomienda la última versión de Visual Studio IDE para crear la aplicación. Visual Studio es el IDE oficial para el desarrollo en C#, y se asume que ya lo ha instalado. Si no ha instalado Visual Studio, puede descargarlo desde el sitio web oficial de Microsoft Visual Studio.
Siga estos pasos para crear un nuevo proyecto llamado "DemoApp".
- Abra Visual Studio y haga clic en Crear un nuevo proyecto
Nuevo Proyecto
- Seleccione Aplicación de consola y haga clic en Siguiente
Tipo de nuevo proyecto
- Ingrese el nombre del Proyecto
Nombre del nuevo proyecto
- Selecciona la versión de .NET. Elige la versión estable .NET 6.0.
Información adicional del nuevo proyecto
Instalar la biblioteca IronXL
Una vez creado el proyecto, se necesita instalar la biblioteca IronXL en el proyecto para usarla. Sigue estos pasos para instalarla.
- Abra Administrar paquetes NuGet para soluciones ya sea desde el Explorador de soluciones o Herramientas.
Administrador de Paquetes NuGet
- Busque la Biblioteca IronXL y seleccione el proyecto actual. Haz clic en instalar.
Buscar e instalar el paquete IronXL en la interfaz de usuario del administrador de paquetes NuGet
Agregue el siguiente espacio de nombres en la parte superior del archivo Program.cs
using IronXL;using IronXL;Imports IronXLAbrir un archivo de Excel existente en C
IronXL proporciona la facilidad de abrir un archivo Excel existente o puede crear un nuevo archivo Excel. Este ejemplo abrirá un archivo existente usando C# IronXL.
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")Ahora, seleccionemos su primera hoja de cálculo. Puede seleccionar una hoja de cálculo por número de índice o por nombre. La propiedad DefaultWorkSheet puede ayudar a obtener la primera hoja.
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Select worksheet by name
WorkSheet ws = workBook.GetWorkSheet("Sheet1");
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Select worksheet by name
WorkSheet ws = workBook.GetWorkSheet("Sheet1");
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
' Select worksheet by name
Dim ws As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Get any existing worksheet
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheetEl código anterior obtiene la primera hoja del libro de trabajo de Excel. Para crear un nuevo archivo Excel con datos, consulte esta página de ejemplo de código.
Ahora, escribamos datos en el archivo Excel usando la biblioteca de objetos IronXL.
Escribir datos en un archivo de Excel en C
Escribir datos en un archivo Excel utilizando IronXL es muy fácil. Hay múltiples formas de lograrlo, pero el método más simple es usar la referencia de celda de Excel.
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";' Access A1 cell and write the value
workSheet("A1").Value = "Value using cell reference"También es posible escribir datos en un rango de celdas. El siguiente código escribe datos desde la celda B1 a B5.
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";' Write the same value to cells from B1 to B5
workSheet("B1:B5").Value = "Range value"También podemos llenar el rango con un bucle for, haciéndolo dinámico. El código es el siguiente:
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}' Specify range in which we want to write the values
For i As Integer = 1 To 5
' Write the Dynamic value in column C
workSheet("C" & i).Value = "Value: " & i
' Write the Dynamic value in column D
workSheet("D" & i).Value = "Value: " & i
Next iOtra forma de escribir datos en un archivo Excel es utilizando el método Replace.
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");' Replace the value in cell D5
workSheet("D5").Replace("Value: 5", "Replaced Value")Guardar un archivo de Excel en C
Esta sección explica cómo guardar el archivo Excel con el contenido recién escrito en él.
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");' Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx")El código completo es el siguiente:
using System;
using IronXL;
class Program
{
static void Main(string[] args)
{
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
Console.WriteLine("Successfully written to Excel File");
}
}using System;
using IronXL;
class Program
{
static void Main(string[] args)
{
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
Console.WriteLine("Successfully written to Excel File");
}
}Imports System
Imports IronXL
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
' Access A1 cell and write the value
workSheet("A1").Value = "Value using cell reference"
' Write the same value to cells from B1 to B5
workSheet("B1:B5").Value = "Range value"
' Specify range in which we want to write the values
For i As Integer = 1 To 5
' Write the Dynamic value in column C
workSheet("C" & i).Value = "Value: " & i
' Write the Dynamic value in column D
workSheet("D" & i).Value = "Value: " & i
Next i
' Replace the value in cell D5
workSheet("D5").Replace("Value: 5", "Replaced Value")
' Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx")
Console.WriteLine("Successfully written to Excel File")
End Sub
End ClassPara obtener información más detallada sobre cómo leer datos de archivos Excel en C#, eche un vistazo a este ejemplo.
Producción
La salida del archivo es:
El archivo Excel de salida
Resumen
Este artículo demostró cómo escribir datos en archivos Excel en C# usando IronXL. IronXL proporciona la facilidad de trabajar con archivos Excel existentes sin ningún problema. También le permite crear nuevos archivos Excel y escribir datos en él con una sintaxis sencilla. IronXL también se puede usar para leer archivos Excel sin tener instalada la aplicación Microsoft Excel. Para leer datos de archivos Excel puede ver esta página de ejemplo de código.
IronXL es gratuito para el desarrollo y se puede licenciar para uso comercial. También puede probar la prueba gratuita de IronXL para uso comercial.
Preguntas Frecuentes
¿Cómo puedo abrir un archivo de Excel en C# sin usar Interop?
Puedes abrir un archivo de Excel en C# sin usar Interop utilizando la biblioteca IronXL. IronXL te permite manejar los archivos de Excel de manera eficiente sin la necesidad de instalación de Microsoft Excel, mejorando el rendimiento y la compatibilidad.
¿Cómo escribo datos en una celda específica en un archivo de Excel usando C#?
Usando IronXL, puedes escribir datos en una celda específica en un archivo de Excel accediendo al libro de trabajo, seleccionando la hoja de trabajo y luego utilizando referencias de celdas para asignar valores a las celdas deseadas.
¿Cuáles son las ventajas de usar IronXL sobre Office Interop para la manipulación de archivos de Excel?
IronXL ofrece varias ventajas sobre Office Interop, incluyendo la ausencia de dependencia de instalación de Microsoft Excel, mejor rendimiento, compatibilidad multiplataforma y soporte para varios formatos de archivos de Excel como XLS, XLSX y CSV.
¿Puedo editar fórmulas en archivos de Excel usando esta biblioteca?
Sí, IronXL te permite editar fórmulas en archivos de Excel. Puedes manipular fórmulas existentes o insertar nuevas usando una sintaxis sencilla, que la biblioteca procesa eficientemente.
¿Cómo soporta IronXL diferentes formatos de archivos Excel?
IronXL soporta múltiples formatos de archivo de Excel como XLS, XLSX, XLSM, CSV y TSV, lo que te permite crear, leer y editar estos archivos sin problemas en una aplicación de C#.
¿Es posible proteger un archivo de Excel usando IronXL?
Sí, IronXL proporciona funcionalidad para proteger archivos de Excel configurando contraseñas de usuario y permisos, garantizando la seguridad de los datos y el acceso controlado.
¿Cómo puedo integrar la biblioteca IronXL en mi proyecto de C#?
Para integrar IronXL en tu proyecto de C#, puedes usar el Administrador de Paquetes NuGet en Visual Studio. Busca IronXL y agrégalo a tu proyecto para comenzar a usar sus características.
¿Qué plataformas son compatibles con IronXL?
IronXL soporta múltiples plataformas, incluyendo .NET 5, 6 y 7, así como .NET Core y Framework, siendo una opción versátil para diversos entornos de desarrollo.
¿Puedo usar IronXL de forma gratuita?
IronXL es gratuito para propósitos de desarrollo. Sin embargo, para uso comercial se requiere una licencia. Hay una prueba gratuita disponible para probar las características de la biblioteca en un entorno comercial.
¿Cómo puedo exportar datos de Excel a JSON usando IronXL?
IronXL te permite exportar datos de Excel a formato JSON convirtiendo la hoja de trabajo o rangos de datos específicos en cadenas JSON, que luego pueden ser usadas en aplicaciones que requieran datos en JSON.






