Introducción

Aspose.Cells FOSS for .NET es una biblioteca de código administrado puro, con licencia MIT, para leer, escribir, y manipular libros de trabajo de Excel .xlsx sin ninguna dependencia de Microsoft Office. Instalado como el Aspose.Cells_FOSS paquete NuGet, se integra en cualquier proyecto .NET — aplicaciones de consola, APIs web, trabajadores en segundo plano y funciones sin servidor.

Esta publicación ofrece una guía paso a paso de la API pública, mostrando lo que es posible y cómo invocar cada capacidad desde código C#.


Descripción general de la característica

Ciclo de vida del libro de trabajo y la hoja de cálculo

El punto de entrada para cada operación es la clase Workbook. Construya una desde cero con new Workbook(), o cargue una .xlsx existente con new Workbook(filePath) o new Workbook(stream). Navegue por las hojas mediante Workbook.Worksheets, establezca Worksheet.Name y Worksheet.VisibilityType, y persista con Workbook.Save(). Para archivos dañados, pase una instancia LoadOptions con TryRepairPackage = true y TryRepairXml = true.

using Aspose.Cells_FOSS;

var options = new LoadOptions
{
    TryRepairPackage = true,
    TryRepairXml = true,
};

try
{
    _ = new Workbook("sample.xlsx", options);
}
catch (WorkbookLoadException exception)
{
    Console.WriteLine(exception.Message);
}

Datos de celdas y fórmulas

Escriba valores en celdas con Cell.PutValue() — las sobrecargas aceptan string, int, double, decimal, bool y DateTime. Lea los valores de vuelta mediante Cell.Value, Cell.StringValue y Cell.Formula. Establezca fórmulas de Excel con la propiedad Cell.Formula; la cadena de fórmula se conserva al guardar y sobrevive a un ciclo de recarga.

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";

workbook.Save("hello.xlsx");

var loaded = new Workbook("hello.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].Formula);
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].StringValue);

Estilo de celda

Aplica los objetos Style para controlar la fuente, el relleno, los bordes, el formato numérico y la alineación.
Recupera el estilo actual con Cell.GetStyle(), modifícalo y luego confirma con
Cell.SetStyle(). Para los rellenos de fondo, establece Style.Pattern = FillPattern.Solid y asigna un
Color a Style.ForegroundColor. Usa Cells.Merge() para abarcar rangos de celdas.

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var cell = workbook.Worksheets[0].Cells["A1"];
cell.PutValue("Styled");

var style = cell.GetStyle();
style.Font.Bold = true;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 241, 196, 15);
cell.SetStyle(style);

Console.WriteLine($"{cell.StringValue} / Bold={cell.GetStyle().Font.Bold}");

Formato condicional

Adjunte reglas de formato condicional a rangos de celdas mediante ConditionalFormattingCollection.
Las reglas admiten FormatConditionType.CellValue, Expression, ColorScale, DataBar, y
IconSet. Use OperatorType para especificar operadores de comparación (Between, Equal,
GreaterThan, etc.), asigne un Style a las celdas coincidentes y configure la prioridad y
el comportamiento stop‑if‑true por regla.

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];

var cfCollection = sheet.ConditionalFormattings[sheet.ConditionalFormattings.Add()];
cfCollection.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = cfCollection[cfCollection.AddCondition(
    FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var style = rule.Style;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
style.Font.Bold = true;
rule.Style = style;

workbook.Save("conditional-formatting.xlsx");

Validación de datos

Agregue restricciones de entrada a las celdas usando Worksheet.Validations. Los tipos de validación compatibles incluyen ValidationType.List, Decimal, Custom, y más. Configure los mensajes de solicitud de entrada (InputTitle, InputMessage) y los mensajes de error (ErrorTitle, ErrorMessage, ValidationAlertType). Use CellArea.CreateCellArea() para definir el rango validado y Validation.AddArea() para aplicar una regla a rangos adicionales.

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Validation Sheet";

var listIdx = sheet.Validations.Add(CellArea.CreateCellArea("A1", "A3"));
var listVal = sheet.Validations[listIdx];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed\"";
listVal.IgnoreBlank = true;
listVal.InCellDropDown = true;
listVal.ShowInput = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Pick a status";
listVal.ShowError = true;
listVal.ErrorTitle = "Invalid";
listVal.ErrorMessage = "Choose from the list";

workbook.Save("validations-sample.xlsx");

Configuración de página y opciones de impresión

Configure el diseño de impresión mediante Worksheet.PageSetup. Establezca los márgenes (LeftMarginInch, RightMarginInch, TopMarginInch, BottomMarginInch), Orientation, PaperSize, escala, área de impresión, filas y columnas de título, encabezados y pies de página, y saltos de página. Todas las configuraciones sobreviven a una ronda de guardado y carga.

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Print Sheet";
sheet.Cells["A1"].PutValue("Title");

var pageSetup = sheet.PageSetup;
pageSetup.Orientation = PageOrientationType.Landscape;
pageSetup.PaperSize = PaperSizeType.PaperA4;
pageSetup.PrintArea = "$A$1:$C$10";
pageSetup.PrintTitleRows = "$1:$2";
pageSetup.LeftHeader = "Left Header";
pageSetup.CenterFooter = "Center Footer";
pageSetup.PrintGridlines = true;
pageSetup.CenterHorizontally = true;

workbook.Save("page-setup-sample.xlsx");

Configuración y Protección de la Hoja de Cálculo

Control la visualización por hoja con Worksheet.ShowGridlines, ShowRowColumnHeaders, ShowZeros, RightToLeft, Zoom y TabColor. Proteja las hojas con Worksheet.Protect() y configure banderas de granularidad fina Protection (Objects, FormatCells, InsertRows, AutoFilter, SelectLockedCells). Administre la altura de filas, el ancho de columnas, filas/columnas ocultas y regiones combinadas mediante Cells.Rows, Cells.Columns y Cells.Merge().

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var layout = workbook.Worksheets[0];
layout.Name = "Layout";
layout.VisibilityType = VisibilityType.Hidden;
layout.TabColor = Color.FromArgb(255, 34, 68, 102);
layout.ShowGridlines = false;
layout.Zoom = 85;
layout.Protect();
layout.Protection.FormatCells = true;
layout.Protection.InsertRows = true;

layout.Cells["A1"].PutValue("Merged");
layout.Cells.Rows[1].Height = 22.5d;
layout.Cells.Columns[0].Width = 18.25d;
layout.Cells.Merge(0, 0, 2, 2);

workbook.Save("worksheet-settings-sample.xlsx");

Hipervínculos y rangos con nombre

Agregar hipervínculos externos, internos y mailto: mediante HyperlinkCollection.Add(). Establecer Hyperlink.TextToDisplay y Hyperlink.ScreenTip para etiquetas visibles por el usuario. Definir rangos con nombre en el alcance del libro de trabajo o de la hoja usando DefinedNameCollection.Add() — los rangos con nombre sirven como anclajes de fórmula estables y fuentes de datos de gráficos que sobreviven a la recarga del archivo.

using Aspose.Cells_FOSS;

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];

sheet.Cells["A1"].PutValue("Docs");
var link = sheet.Hyperlinks[sheet.Hyperlinks.Add("A1", 1, 1, "https://example.com/docs")];
link.TextToDisplay = "Docs";
link.ScreenTip = "External documentation";

var name = workbook.DefinedNames[workbook.DefinedNames.Add("PrimaryRange", "='Sheet1'!$A$1:$D$5")];
name.Comment = "Primary data range";

workbook.Save("hyperlinks-names.xlsx");
Console.WriteLine("Hyperlinks: " + sheet.Hyperlinks.Count);
Console.WriteLine("Defined names: " + workbook.DefinedNames.Count);

Inicio rápido

dotnet add package Aspose.Cells_FOSS
using Aspose.Cells_FOSS;

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("output.xlsx");

Formatos compatibles

FormatoExtensiónLecturaEscritura
Xlsx.xlsx
Auto(various)

Código abierto y licencias

Aspose.Cells FOSS for .NET se publica bajo la licencia MIT y se distribuye a través de NuGet como
Aspose.Cells_FOSS. Es adecuado tanto para proyectos de código abierto como comerciales.


Comenzando

Recursos relacionados