using IronXL;
using System;
using System.Linq;
// Compatible con XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Seleccione la hoja de cálculo en el índice 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Obtener cualquier hoja de cálculo existente
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Seleccionar una celda y devolver el valor convertido
int cellValue = workSheet["A2"].IntValue;
// Lee de rangos de celdas con elegancia.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calcular valores agregados como Mín, Máx y Suma
decimal sum = workSheet["A2:A10"].Sum();
// Compatible con Linq
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
Hojas de cálculo Excel
using IronXL;
// Crear una nueva hoja de cálculo Excel
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
// Crear hojas de trabajo (hoja de trabajo1, hoja de trabajo2, hoja de trabajo3)
WorkSheet workSheet1 = workBook.CreateWorkSheet("workSheet1");
WorkSheet workSheet2 = workBook.CreateWorkSheet("workSheet2");
WorkSheet workSheet3 = workBook.CreateWorkSheet("workSheet3");
// Establecer la posición de la hoja de trabajo (hoja de trabajo2, hoja de trabajo1, hoja de trabajo3)
workBook.SetSheetPosition("workSheet2", 0);
// Establecer activo para workSheet3
workBook.SetActiveTab(2);
// Eliminar hoja de trabajo1
workBook.RemoveWorkSheet(1);
workBook.SaveAs("manageWorkSheet.xlsx");
Crear archivos Excel
using IronXL;
// Crear un nuevo documento Excel WorkBook
WorkBook workBook = WorkBook.Create();
// Convertir XLSX a XLS
WorkBook xlsWorkBook = WorkBook.Create(ExcelFileFormat.XLS);
// Crear una hoja de trabajo en blanco
WorkSheet workSheet = workBook.CreateWorkSheet("new_sheet");
// Añadir datos y estilos a la nueva hoja de cálculo
workSheet["A1"].Value = "Hello World";
workSheet["A1"].Style.WrapText = true;
workSheet["A2"].BoolValue = true;
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
// Guardar el archivo excel como XLS, XLSX, CSV, TSV, JSON, XML, HTML y secuencias
workBook.SaveAs("sample.xlsx");
Convertir tipos de archivos de hoja de cálculo
using IronXL;
using System.IO;
// Importe cualquier archivo XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Exportar el archivo excel como XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");
// Exportar el archivo excel como Html, cadena Html
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();
// Exportar el archivo excel como Binario, Matriz de bytes, Conjunto de datos, Flujo
byte[] binary = workBook.ToBinary();
byte[] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Permite una fácil integración con DataGrids, SQL y EF
Stream stream = workBook.ToStream();
Excel a SQL mediante System.Data.DataSet
using IronXL;
using System;
using System.Data;
// Compatible con XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Convertir todo el Libro de Excel en un DataSet
DataSet dataSet = workBook.ToDataSet();
foreach (DataTable table in dataSet.Tables)
{
Console.WriteLine(table.TableName);
// Enumere primero por filas o columnas según prefiera
foreach (DataRow row in table.Rows)
{
for (int i = 0 ; i < table.Columns.Count ; i++)
{
Console.Write(row[i]);
}
}
}
Excel a SQL y DataGrid vía DataTable
using IronXL;
using System;
using System.Data;
// Compatible con XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Seleccionar hoja por defecto
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Convertir la hoja de cálculo en DataTable
DataTable dataTable = workSheet.ToDataTable(true);
// Enumere primero por filas o columnas según prefiera
foreach (DataRow row in dataTable.Rows)
{
for (int i = 0 ; i < dataTable.Columns.Count ; i++)
{
Console.Write(row[i]);
}
}
Formato condicional de Excel
using IronXL;
using IronXL.Formatting.Enums;
using IronXL.Styles;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Crear regla de formato condicional
var rule = workSheet.ConditionalFormatting.CreateConditionalFormattingRule(ComparisonOperator.LessThan, "8");
// Establecer opciones de estilo
rule.FontFormatting.IsBold = true;
rule.FontFormatting.FontColor = "#123456";
rule.BorderFormatting.RightBorderColor = "#ffffff";
rule.BorderFormatting.RightBorderType = BorderType.Thick;
rule.PatternFormatting.BackgroundColor = "#54bdd9";
rule.PatternFormatting.FillPattern = FillPattern.Diamonds;
// Aplicar formato a una región específica
workSheet.ConditionalFormatting.AddConditionalFormatting("A3:A8", rule);
// Crear regla de formato condicional
var rule1 = workSheet.ConditionalFormatting.CreateConditionalFormattingRule(ComparisonOperator.Between, "7", "10");
// Establecer opciones de estilo
rule1.FontFormatting.IsItalic = true;
rule1.FontFormatting.UnderlineType = FontUnderlineType.Single;
// Aplicar formato a una región específica
workSheet.ConditionalFormatting.AddConditionalFormatting("A3:A9", rule1);
workBook.SaveAs("applyConditionalFormatting.xlsx");
Proteger archivos Excel
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Abrir archivo de hoja de cálculo protegido
WorkBook protectedWorkBook = WorkBook.Load("sample.xlsx", "IronSoftware");
// Protección de hojas de cálculo
// Protección de archivos de hoja de cálculo
workBook.Encrypt("IronSoftware");
// Elimine la protección de un archivo de hoja de cálculo. Se requiere la contraseña original.
workBook.Password = null;
workBook.Save();
// Protección de las hojas de trabajo
// Establecer la protección de cada hoja de cálculo
workSheet.ProtectSheet("IronXL");
// Elimina la protección de una hoja de cálculo concreta. Funciona sin contraseña.
workSheet.UnprotectSheet();
workBook.Save();
Fórmulas de Excel en C#
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Establecer fórmulas
workSheet["A1"].Formula = "Sum(B8:C12)";
workSheet["B8"].Formula = "=C9/C11";
workSheet["G30"].Formula = "Max(C3:C7)";
// Forzar el recálculo de todos los valores de las fórmulas en todas las hojas.
workBook.EvaluateAll();
// Obtener el valor calculado de la fórmula. p.ej. "52"
var formulaValue = workSheet["G30"].First().FormattedCellValue;
// Obtener la fórmula como una cadena. Por ejemplo, "Max(C3:C7)"
string formulaString = workSheet["G30"].Formula;
// Guarde los cambios con las fórmulas actualizadas y los valores calculados.
workBook.Save();
Editar metadatos de Excel en C#
using IronXL;
using System;
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Establecer autor
workBook.Metadata.Author = "Your Name";
// Comentarios
workBook.Metadata.Comments = "Monthly report";
// Título del juego
workBook.Metadata.Title = "July";
// Establecer palabras clave
workBook.Metadata.Keywords = "Report";
// Leer la fecha de creación del archivo excel
DateTime? creationDate = workBook.Metadata.Created;
// Leer la última fecha impresa del archivo excel
DateTime? printDate = workBook.Metadata.LastPrinted;
workBook.SaveAs("editedMetadata.xlsx");
Actualizar registros de bases de datos Excel
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Compatible con XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Convertir el libro de trabajo en ToDataSet
DataSet dataSet = workBook.ToDataSet();
// Su consulta sql
string sql = "SELECT * FROM Users";
// Su cadena de conexión
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Conexiones abiertas a la base de datos
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
// Actualizar los valores de la base de datos utilizando los valores de Excel
adapter.Update(dataSet);
}
Estilo Excel Bordes de Celda & Fuentes
using IronSoftware.Drawing;
using IronXL;
using IronXL.Styles;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
var range = workSheet["A1:H10"];
var cell = range.First();
// Establecer el color de fondo de la celda con una cadena rgb
cell.Style.SetBackgroundColor("#428D65");
// Aplicar estilismo a toda la gama.
// Establecer la propiedad de subrayado a la fuente
// FontUnderlineType es un enum que representa diferentes tipos de fuentes subyacentes
range.Style.Font.Underline = FontUnderlineType.SingleAccounting;
// Definir si se utiliza la línea horizontal a través del texto o no
range.Style.Font.Strikeout = false;
// Definir si la fuente está en negrita o no
range.Style.Font.Bold = true;
// Definir si la fuente es cursiva o no
range.Style.Font.Italic = false;
// Obtener o establecer la propiedad script de una fuente
// Font script enum representa las opciones disponibles
range.Style.Font.FontScript = FontScript.Super;
// Establecer el tipo de línea de borde
// También existen las propiedades TopBorder,LeftBorder,RightBorder,DiagonalBorder
// BorderType enum indica el estilo de línea de un borde en una celda
range.Style.BottomBorder.Type = BorderType.MediumDashed;
// Indicar si la celda debe tener tamaño automático
range.Style.ShrinkToFit = true;
// Establecer la alineación de la celda
range.Style.VerticalAlignment = VerticalAlignment.Bottom;
// Definir el color del borde
range.Style.DiagonalBorder.SetColor("#20C96F");
// Defina también el tipo y la dirección del borde
range.Style.DiagonalBorder.Type = BorderType.Thick;
// DiagonalBorderDirection enum indica la dirección del borde diagonal dentro de la celda
range.Style.DiagonalBorderDirection = DiagonalBorderDirection.Forward;
// Establecer el color de fondo de las celdas
range.Style.SetBackgroundColor(Color.Aquamarine);
// Establecer el patrón de relleno de la celda
// FillPattern enum indica el estilo del patrón de relleno
range.Style.FillPattern = FillPattern.Diamonds;
// Establezca el número de espacios que debe tener el texto
range.Style.Indention = 5;
// Indicar si el texto está envuelto
range.Style.WrapText = true;
workBook.SaveAs("stylingOptions.xls");
Ordenar rangos de Excel en C#
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Seleccione una gama
var range = workSheet["A1:D20"];
// Seleccione una columna(B)
var column = workSheet.GetColumn(1);
// Ordenar el rango en orden ascendente (de la A a la Z)
range.SortAscending();
// Ordenar el rango por columna(C) en orden ascendente
range.SortByColumn("C", SortOrder.Ascending);
// Ordenar la columna(B) en orden descendente (Z a A)
column.SortDescending();
workBook.SaveAs("sortExcelRange.xlsx");
Repetir filas y columnas de Excel
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Establecer filas de repetición para fila(2-4)
workSheet.SetRepeatingRows(1, 3);
// Establecer columnas repetitivas para la columna(C-D)
workSheet.SetRepeatingColumns(2, 3);
// Establezca el salto de columna después de la columna(H). Por lo tanto, la primera página sólo contendrá la columna(A-G)
workSheet.SetColumnBreak(7);
workBook.SaveAs("repeatingRows.xlsx");
Configuración de impresión de Excel
using IronXL;
using IronXL.Printing;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Establecer la cabecera y el pie de página de impresión de la hoja de cálculo
workSheet.Header.Center = "My document";
workSheet.Footer.Center = "Page &P of &N";
// Establecer el margen de la cabecera
workSheet.PrintSetup.HeaderMargin = 2.33;
// Ajuste el tamaño del papel
// El enum de tamaño de papel representa diferentes tamaños de papel
workSheet.PrintSetup.PaperSize = PaperSize.B4;
// Establecer la orientación de impresión de la hoja de cálculo
workSheet.PrintSetup.PrintOrientation = PrintOrientation.Portrait;
// Configurar la impresión en blanco y negro
workSheet.PrintSetup.NoColor = true;
workBook.SaveAs("PrintSetup.xlsx");
Formato de visualización de los datos de las celdas
using IronXL;
using System;
using System.Linq;
// Cargar una hoja de trabajo existente
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Establecer el formato de visualización de los datos en la celda
// El valor de la celda será 12300%.
workSheet["A2"].Value = 123;
workSheet["A2"].FormatString = "0.0%";
// El valor de la celda será 123.0000
workSheet["A2"].First().FormatString = "0.0000";
// Establecer el formato de visualización de datos en rango
DateTime dateValue = new DateTime(2020, 1, 1, 12, 12, 12);
workSheet["A3"].Value = dateValue;
workSheet["A4"].First().Value = new DateTime(2022, 3, 3, 10, 10, 10);
workSheet["A5"].First().Value = new DateTime(2021, 2, 2, 11, 11, 11);
var range = workSheet["A3:A5"];
// El valor de la celda(A3) será 1/1/2020 12:12:12 PM
range.FormatString = "MM/dd/yy h:mm:ss";
workBook.SaveAs("numberFormats.xls");
Cargar Excel desde base de datos SQL
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Su consulta sql
string sql = "SELECT * FROM Users";
// Su cadena de conexión
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
// Conexiones abiertas a la base de datos
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataSet ds = new DataSet();
// Rellenar DataSet con datos
adapter.Fill(ds);
// Crear un libro de Excel a partir del DataSet SQL
WorkBook workBook = WorkBook.Load(ds);
}
Combinar rangos de Excel
using IronXL;
using System;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Obtener un rango de una hoja de cálculo de Excel
var range = workSheet["A2:A8"];
// Combinar dos rangos
var combinedRange = range + workSheet["A9:A10"];
// Iterar sobre el rango combinado
foreach (var cell in combinedRange)
{
Console.WriteLine(cell.Value);
}
Seleccionar rango de Excel
using IronXL;
using System;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Obtener rango de la hoja de cálculo
var range = workSheet["A2:A8"];
// Obtener columna de la hoja de cálculo
var columnA = workSheet.GetColumn(0);
// Obtener fila de la hoja de cálculo
var row1 = workSheet.GetRow(0);
// Iterar sobre el rango
foreach (var cell in range)
{
Console.WriteLine($"{cell.Value}");
}
// Seleccionar e imprimir cada fila
var rows = workSheet.Rows;
foreach (var eachRow in rows)
{
foreach (var cell in eachRow)
{
Console.Write($" {cell.Value} |");
}
Console.WriteLine($"");
}
Convertir Excel a HTML
using IronXL;
using IronXL.Options;
WorkBook workBook = WorkBook.Load("sample.xlsx");
var options = new HtmlExportOptions()
{
// Establecer números de fila/columna visibles en documento html
OutputRowNumbers = true,
OutputColumnHeaders = true,
// Establecer filas/columnas ocultas visibles en documento html
OutputHiddenRows = true,
OutputHiddenColumns = true,
// Establecer los espacios iniciales como de no ruptura
OutputLeadingSpacesAsNonBreaking = true
};
// Exportar el libro de trabajo al archivo HTML
workBook.ExportToHtml("workBook.html", options);
Funciones agregadas de Excel
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Obtener rango de la hoja de cálculo
var range = workSheet["A1:A8"];
// Aplicar la suma de todas las celdas numéricas del rango
decimal sum = range.Sum();
// Aplicar el valor medio de todas las celdas numéricas del rango
decimal avg = range.Avg();
// Identificar el valor máximo de todas las celdas numéricas del rango
decimal max = range.Max();
// Identificar el valor mínimo de todas las celdas numéricas del rango
decimal min = range.Min();
Crear Gráfico de Líneas Excel
using IronXL;
using IronXL.Drawing.Charts;
WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
// Establezca el tipo de gráfico y su posición en la hoja de cálculo.
var chart = workSheet.CreateChart(ChartType.Line, 10, 10, 18, 20);
// Añadir la serie al gráfico
// El primer parámetro representa la dirección del rango para el eje horizontal(categoría).
// El segundo parámetro representa la dirección del rango para el eje vertical(valor).
var series = chart.AddSeries("B3:B8", "A3:A8");
// Establezca el título del gráfico.
series.Title = "Line Chart";
// Establece la posición de la leyenda.
// Puede eliminarse estableciéndolo en Ninguno.
chart.SetLegendPosition(LegendPosition.Bottom);
// Podemos cambiar la posición del gráfico.
chart.Position.LeftColumnIndex = 2;
chart.Position.RightColumnIndex = chart.Position.LeftColumnIndex + 3;
// Traza todos los datos que se añadieron antes al gráfico.
// Si se llama varias veces a este método, se trazan varios gráficos en lugar de modificar el gráfico existente.
// Sin embargo, no hay posibilidad de eliminar el gráfico o editar su serie/posición.
// Podemos crear uno nuevo.
chart.Plot();
workBook.SaveAs("CreateLineChart.xlsx");
Congelar paneles en Excel
using IronXL;
using System.Linq;
WorkBook workBook = WorkBook.Load("sample.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// Crear panel de congelación a partir de la columna(A-B) y la fila(1-3)
workSheet.CreateFreezePane(2, 3);
// Sobreescritura de panel congelado o dividido en columna(A-E) y fila(1-5), así como aplicación de predesplazamiento.
// La columna mostrará E,G,... y la fila mostrará 5,8,...
workSheet.CreateFreezePane(5, 5, 6, 7);
workBook.SaveAs("createFreezePanes.xls");
// Retirar todos los cristales existentes
workSheet.RemovePane();
Copiar hojas de cálculo de Excel
using IronXL;
WorkBook firstBook = WorkBook.Load("sample.xlsx");
WorkBook secondBook = WorkBook.Create();
// Seleccionar la primera hoja del libro
WorkSheet workSheet = firstBook.DefaultWorkSheet;
// Duplicar la hoja de cálculo en el mismo libro de trabajo
workSheet.CopySheet("Copied Sheet");
// Duplicar la hoja de trabajo en otro libro con el nombre especificado
workSheet.CopyTo(secondBook, "Copied Sheet");
firstBook.Save();
secondBook.SaveAs("copyExcelWorksheet.xlsx");