C# Write to Excel [Sin usar Interop] Ejemplo de código Tutorial
Siga ejemplos paso a paso de cómo crear, abrir y guardar archivos Excel con C#, y aplique operaciones básicas como obtener la suma, la media, el recuento, etc. IronXL.Excel es una biblioteca de software .NET independiente para leer una amplia gama de formatos de hojas de cálculo. No requiere Microsoft Excel ni depender de Interop.
Cómo escribir un archivo Excel en C#
- Descargar la biblioteca Write Excel C# Library
- Crear y abrir un nuevo archivo CSV o XML de Excel como libro de Excel
- Guardar y exportar el libro de Excel
- Aplique Operaciones Avanzadas en sus múltiples hojas de Excel
- Integración con base de datos Excel
Visión general
Utilice IronXL para abrir y escribir archivos de Excel
Abra, escriba, guarde y personalice archivos Excel con la sencilla aplicación Biblioteca IronXL C#.
Descargar proyecto de ejemplo de GitHub o utilice el suyo propio y siga el tutorial.
- Instale la biblioteca IronXL Excel desde NuGet o la descarga de DLL
- Utilice el método WorkBook.Load para leer cualquier documento XLS, XLSX o CSV.
Obtenga los valores de las celdas utilizando una sintaxis intuitiva:
hoja ["A11"].DecimalValue
En este tutorial, te guiaremos a través de:
- Instalación de IronXL.Excel: cómo instalar IronXL.Excel en un proyecto existente.
- Operaciones básicas: pasos de operaciones básicas con Excel para Crear o Abrir libro, seleccionar hoja, seleccionar celda y guardar el libro.
- Operaciones de hoja avanzadas: cómo utilizar diferentes capacidades de manipulación como añadir encabezados o pies de página, archivos de operaciones matemáticas y otras funciones.
Abrir un archivo Excel : Código rápido
:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-1.cs
using IronXL;
WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
IronXL.Range range = workSheet["A2:A8"];
decimal total = 0;
// iterate over range of cells
foreach (var cell in range)
{
Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value);
if (cell.IsNumeric)
{
// Get decimal value to avoid floating numbers precision issue
total += cell.DecimalValue;
}
}
// Check formula evaluation
if (workSheet["A11"].DecimalValue == total)
{
Console.WriteLine("Basic Test Passed");
}
Imports IronXL
Private workBook As WorkBook = WorkBook.Load("test.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private range As IronXL.Range = workSheet("A2:A8")
Private total As Decimal = 0
' iterate over range of cells
For Each cell In range
Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value)
If cell.IsNumeric Then
' Get decimal value to avoid floating numbers precision issue
total += cell.DecimalValue
End If
Next cell
' Check formula evaluation
If workSheet("A11").DecimalValue = total Then
Console.WriteLine("Basic Test Passed")
End If
Escribir y Guardar Cambios en el Archivo Excel : Código Rápido
:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-2.cs
workSheet["B1"].Value = 11.54;
// Save Changes
workBook.SaveAs("test.xlsx");
workSheet("B1").Value = 11.54
' Save Changes
workBook.SaveAs("test.xlsx")
Primer paso
1. Instale la librería IronXL C# GRATIS
Instalar con NuGet
Install-Package IronXL.Excel
IronXL.Excel proporciona una biblioteca flexible y potente para abrir, leer, editar y guardar archivos Excel en .NET. Puede instalarse y utilizarse en todos los tipos de proyectos .NET, como aplicaciones Windows, ASP.NET MVC y .NET Core Application.
Instale la biblioteca de Excel en su proyecto de Visual Studio con NuGet
El primer paso será instalar IronXL.Excel. Para agregar la librería IronXL.Excel al proyecto, tenemos dos formas : NuGet Package Manager o NuGet Package Manager Console.
Para agregar la librería IronXL.Excel a nuestro proyecto usando NuGet, podemos hacerlo usando una interfaz visualizada, NuGet Package Manager:
Con el ratón -> click derecho sobre el nombre del proyecto -> Seleccionar gestionar paquete NuGet
Desde la pestaña Examinar -> busque IronXL.Excel -> Instalar
- Y hemos terminado
Instalación mediante la consola del gestor de paquetes NuGet
Desde herramientas -> Gestor de paquetes NuGet -> Consola del Gestor de paquetes
- Ejecutar comando -> Install-Package IronXL.Excel -Version 2019.5.2
Instalación manual con la DLL
También puede optar por instalar manualmente el DLL a su proyecto o a su caché global de ensamblados. ``` PM > Instalar paquete IronXL.Excel
<hr class="separator"><h4 class="tutorial-segment-title">Tutoriales prácticos</h4>
2. Operaciones básicas: Crear, Abrir, Guardar
2.1. Proyecto de ejemplo: Aplicación de Consola HelloWorld
Crear un proyecto HelloWorld
2.1.1. Abrir Visual Studio
![](/img/tutorials/csharp-open-write-excel-file/open-visual-studio.png)
2.1.2. Seleccione Crear nuevo proyecto
![](/img/tutorials/csharp-open-write-excel-file/choose-create-new-project.png)
2.1.3. Seleccione Aplicación de consola (.NET framework)
![](/img/tutorials/csharp-open-write-excel-file/choose-console-app.jpg)
2.1.4. Dale a nuestro ejemplo el nombre "HolaMundo" y pulsa crear
![](/img/tutorials/csharp-open-write-excel-file/give-our-sample-name.jpg)
2.1.5. Ahora tenemos la aplicación de consola creada
![](/img/tutorials/csharp-open-write-excel-file/console-application-created.jpg)
2.1.6. Añadir IronXL.Excel => haga clic en instalar
![](/img/tutorials/csharp-open-write-excel-file/add-ironxl-click-install.jpg)
2.1.7. Añadimos nuestras primeras líneas que leen la 1ª celda de la 1ª hoja del fichero Excel, e imprimimos
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-3.cs ``` ### 2.2. Crear un nuevo archivo Excel ###Crear un nuevo archivo de Excel utilizando IronXL
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-4.cs ``` ### 2.3. Abrir (lista CSV, XML, JSON) como libro de trabajo ###2.3.1. Abrir archivo CSV
2.3.2 Cree un nuevo archivo de texto y añádale una lista de nombres y edades (véase el ejemplo) y guárdelo como CSVList.csv
![](/img/tutorials/csharp-open-write-excel-file/code-snippet.jpg)
El fragmento de código debe tener el siguiente aspecto
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-5.cs ```2.3.3. Abrir fichero XML Crear un archivo XML que contenga una lista de países: el elemento raíz "countries", con elementos hijos "country", y cada país tiene propiedades que definen el país como código, continente, etc.
```html2.3.4. Copie el siguiente fragmento de código para abrir XML como libro de trabajo
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-7.cs ```2.3.5. Abrir JSON List como libro de trabajo Crear lista de países JSON
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-8.cs ```2.3.6. Crear un modelo de país que se mapeará a JSON
![](/img/tutorials/csharp-open-write-excel-file/create-country-model.png)
Este es el fragmento de código de la clase
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-9.cs ```2.3.8. Añadir biblioteca Newtonsoft para convertir JSON a la lista de modelos de países.
![](/img/tutorials/csharp-open-write-excel-file/add-newtonsoft-library-to-convert-json.png)
2.3.9 Para convertir la lista en conjunto de datos, tenemos que crear una nueva extensión para la lista. Añade una clase de extensión con el nombre "ListConvertExtension".
![](/img/tutorials/csharp-open-write-excel-file/convert-list-to-dataset.png)
A continuación, añada este fragmento de código
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-10.cs ```Y finalmente cargar este conjunto de datos como un libro de trabajo
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-11.cs ``` ### 2.4. Guardar y exportar ### Podemos guardar o exportar el archivo Excel a múltiples formatos de archivo como (".xlsx",".csv",".html") utilizando uno de los siguientes comandos.2.4.1. Guardar en ".xlsx" Para guardar en ".xlsx" utilice la función saveAs
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-12.cs ```2.4.2. Guardar en csv ".csv" Para guardar en ".csv" podemos usar SaveAsCsv y pasarle 2 parámetros 1er parámetro el nombre del fichero y la ruta el 2º parámetro es el delimitador como ("," o " " o ":")
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-13.cs ```2.4.3. Guardar en JSON ".json" Para guardar en Json ".json" utilice SaveAsJson como sigue
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-14.cs ```El archivo resultante debería tener el siguiente aspecto
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-15.cs ```2.4.4. Guardar en XML ".xml" Para guardar en xml utilice SaveAsXml como sigue
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-16.cs ```El resultado debería ser el siguiente
```html <_x0031_stworksheet><_x0031_stworksheet>## 3. Operaciones avanzadas: Suma, Promedio, Recuento, etc. ## Apliquemos funciones comunes de Excel como SUM, AVG, Count y veamos cada fragmento de código. ### 3.1. Suma Ejemplo ###
Busquemos la suma de esta lista. He creado un archivo Excel y lo he llamado "Sum.xlsx" y he añadido esta lista de números manualmente
![](/img/tutorials/csharp-open-write-excel-file/sum-example.png)
Utilizando el mismo archivo, podemos obtener la media:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-19.cs ``` ### 3.3. Ejemplo de recuento ###Utilizando el mismo fichero, también podemos obtener el número de elementos de una secuencia:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-20.cs ``` ### 3.4. Ejemplo Max ###Utilizando el mismo fichero, podemos obtener el valor máximo de un rango de celdas:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-21.cs ```- Podemos aplicar la función transformar al resultado de la función max:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-22.cs ```Este ejemplo escribe "false" en la consola.
### 3.5. Min Ejemplo ###Utilizando el mismo fichero, podemos obtener el valor mínimo de un rango de celdas:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-23.cs ``` ### 3.6. Ejemplo de celdas de orden ###Utilizando el mismo fichero, podemos ordenar las celdas de forma ascendente o descendente:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-24.cs ``` ### 3.7. Si Condición Ejemplo ###Utilizando el mismo archivo, podemos usar la propiedad Formula para establecer u obtener la fórmula de una celda:
3.7.1. Guardar en XML ".xml"
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-25.cs ```7.2. Utilizando el fichero generado del ejemplo anterior, podemos obtener la Fórmula de la Celda:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-26.cs ``` ### 3.8. Ejemplo de recorte ###Para aplicar la función de recorte (para eliminar todos los espacios sobrantes en las celdas), añadí esta columna al archivo sum.xlsx
![](/img/tutorials/csharp-open-write-excel-file/trim-example.png)
Y utiliza este código
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-27.cs ```Así, puede aplicar fórmulas de la misma manera.
## 4. Trabajar con libros de varias hojas ## Vamos a ver cómo trabajar con libros de trabajo que tienen más de una hoja. ### 4.1. Leer datos de varias hojas del mismo libro ###
He creado un archivo xlsx que contiene dos hojas: "Hoja1", "Hoja2"
Hasta ahora hemos utilizado WorkSheets.First() para trabajar con la primera hoja. En este ejemplo especificaremos el nombre de la hoja y trabajaremos con ella
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-28.cs ``` ### 4.2. Añadir una nueva hoja a un libro ###También podemos añadir una nueva hoja a un libro de trabajo:
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-29.cs ```## 5. Integrar con base de datos Excel ## Veamos cómo exportar/importar datos a/desde Base de Datos. He creado la base de datos "TestDb" que contiene una tabla País con dos columnas: Id (int, identidad)NombrePaís(cadena) ### 5.1. Rellenar hoja Excel con datos de la base de datos ###
Aquí crearemos una nueva hoja y la rellenaremos con los datos de la Tabla de Países
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-30.cs ``` ### 5.2. Rellenar base de datos con datos de hoja Excel ###Inserte los datos en la tabla País de la base de datos TestDb
```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-31.cs ```### Lecturas complementarias Para aprender más acerca de cómo trabajar con IronXL, es posible que desee ver los otros tutoriales dentro de esta sección, y también los ejemplos en nuestra página principal, que la mayoría de los desarrolladores encuentran suficiente para empezar. Nuestra [Referencia API](/csharp/excel/object-reference/) contiene referencias específicas al
WorkBook
clase.Acceso rápido a tutoriales
Descargar este tutorial como código fuente C
El código fuente completo y gratuito de C# para Excel de este tutorial está disponible para descargar como archivo de proyecto comprimido de Visual Studio 2017.
DescargarExplore este tutorial en GitHub
El código fuente de este proyecto está disponible en C# y VB.NET en GitHub.
Utilice este código como una manera fácil de ponerse en marcha en solo unos minutos. El proyecto se guarda como un proyecto de Microsoft Visual Studio 2017, pero es compatible con cualquier IDE de .NET.
Cómo abrir y escribir un archivo Excel en C# on GitHubReferencia API para IronXL
Explore the Referencia API para IronXL, outlining the details of all of IronXL’s features, namespaces, classes, methods fields and enums.
Ver la referencia de la API