1. Продукти
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for .NET

Aspose.Cells FOSS за .NET

Създавайте, променяйте и запазвайте Excel .xlsx работни книги от .NET — безплатен и с отворен код, нулева зависимост от Microsoft Office.

Open-Source .NET библиотека за електронни таблици Excel

Aspose.Cells FOSS за .NET е безплатна, с лиценз MIT, отворена библиотека за работа с Excel електронни таблици в .NET приложения. Инсталирайте я с една единствена команда dotnet add package Aspose.Cells_FOSS и започнете да създавате работни книги, четете клетки, прилагате стилове, добавяте условно форматиране, хипервръзки, проверка на данни и автоматични филтри — всичко без да се изисква Microsoft Excel или каквато и да е нативна Office библиотека.

Библиотеката предоставя чист API, построен около Workbook, Worksheet, Cells и Cell — познатите обекти, които всеки разработчик на електронни таблици познава. Създайте Workbook, за да заредите съществуващ файл .xlsx или да създадете празен, достъпвайте листове чрез колекцията Worksheets, четете и записвайте стойности в клетки с PutValue и прилагайте стилове чрез GetStyle()/SetStyle(). Формулите се съхраняват дословно като низове и се оценяват от визуализатора при отваряне, а не от библиотеката по време на изпълнение.

Тъй като библиотеката е чисто управляван .NET код без нативни зависимости, тя работи идентично на Windows, macOS, Linux, Docker контейнери и безсървърни среди като Azure Functions и AWS Lambda. Лицензът MIT позволява неограничено комерсиално използване без royalties, лицензни места или такси за внедряване.

Read and Write Excel Files

  • XLSX read/write: Open and save workbooks with full round-trip fidelity using Workbook(fileName) and Save(fileName).
  • Cell values: Write string, int, bool, decimal, and DateTime values with Cell.PutValue(value).
  • Cell access: Read values with Cell.StringValue, Cell.Value, and Cell.IntValue.
  • Formulas: Store formula strings via Cell.Formula — evaluated by Excel on open.
  • Worksheet navigation: Access sheets by index or name via Workbook.Worksheets.

Where Aspose.Cells FOSS for .NET Can Be Used

  • Report generation: Build branded Excel reports in .NET server applications.
  • Data export: Write database query results directly to .xlsx without Office.
  • CI/CD automation: Generate test-result workbooks inside Docker or Linux CI.
  • ETL workflows: Read input sheets, transform data, and write output workbooks.
  • Serverless functions: Run inside Azure Functions or AWS Lambda without dependencies.

Cell Styling and Conditional Formatting

  • Font styling: Apply bold, italic, font size, and color via CellStyle.Font.
  • Fill patterns: Set background colors with CellStyle.ForegroundColor and FillPattern.Solid.
  • Conditional formatting: Add FormatConditionType.CellValue, Expression, ColorScale, DataBar, and IconSet rules via Worksheet.ConditionalFormattings.
  • Style normalization: Use StyleRepository.Normalize(style) for consistent style application.
  • Number formats: Assign custom number format strings per cell.

Formatting Use Cases

  • Dashboard reports: Apply color scales and data bars to highlight KPI ranges.
  • Status sheets: Use icon sets to visually categorize row states.
  • Financial workbooks: Format currency and date columns with built-in number formats.
  • Header styling: Bold and color header rows to distinguish them from data rows.

Data Validation and Auto-Filters

  • Validation rules: Add whole-number, decimal, list, and date validations via ValidationCollection.Add().
  • Operators: Use OperatorType.Between, GreaterThan, LessThan, and others.
  • Validation type: Set ValidationType.WholeNumber, Decimal, List, Date, or Custom.
  • Auto-filters: Apply column filters on a range with AutoFilter and AutoFilter.FilterColumns.
  • Cell areas: Define validation ranges using CellArea.CreateCellArea(start, end).

Validation Use Cases

  • Data entry forms: Restrict input to valid ranges before the workbook is shared.
  • Budget templates: Enforce whole-number budget cells with min/max bounds.
  • Reporting pipelines: Validate output data before delivering to stakeholders.
  • List constraints: Lock cells to a pre-defined dropdown list of allowed values.

Hyperlinks, Named Ranges, and Protection

  • Hyperlinks: Add external URLs, internal cell references, and mailto links via HyperlinkCollection.Add().
  • Named ranges: Define global and sheet-scoped named ranges with DefinedNameCollection.Add().
  • Workbook protection: Lock workbook structure using WorkbookProtection.
  • Worksheet protection: Protect individual sheets with Worksheet.Protect().
  • Load diagnostics: Inspect malformed input using LoadDiagnostics and LoadIssue.

Governance and Collaboration Use Cases

  • Template distribution: Protect sheets to prevent accidental formula overwrite.
  • Shared workbooks: Use named ranges to create stable cross-sheet references.
  • Audit trails: Link cells to external documentation URLs via hyperlinks.
  • Input validation: Combine protection with validation to enforce data governance.

Create a Workbook and Write Cells

Install the NuGet package, then create a Workbook, access the first Worksheet, and write values to cells using PutValue. The example demonstrates writing multiple value types and performing a save-and-reload round trip.

dotnet add package Aspose.Cells_FOSS
using Aspose.Cells_FOSS;

var outputPath = "cell-data-roundtrip.xlsx";
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];

sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].PutValue(true);
sheet.Cells["D1"].PutValue(12.5m);
sheet.Cells["F1"].PutValue(10);
sheet.Cells["G1"].Formula = "=F1*2";
workbook.Save(outputPath);

var loaded = new Workbook(outputPath);
var loadedSheet = loaded.Worksheets[0];
Console.WriteLine(loadedSheet.Cells["A1"].StringValue);
Console.WriteLine(loadedSheet.Cells["G1"].Formula);

Apply Conditional Formatting

Add conditional formatting rules to highlight cell ranges. The example applies a between-value rule with a solid fill, an expression rule, a color scale, a data bar, and an icon set.

using Aspose.Cells_FOSS;

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

for (var i = 0; i < 10; i++)
    sheet.Cells[i, 0].PutValue(i + 1);

var cfCol = sheet.ConditionalFormattings[sheet.ConditionalFormattings.Add()];
cfCol.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = cfCol[cfCol.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");

Add Hyperlinks and Named Ranges

Create external and internal hyperlinks, then define named ranges scoped to the workbook or a specific sheet.

using Aspose.Cells_FOSS;

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

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 docs";

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

workbook.Save("hyperlinks-and-names.xlsx");
  

Ресурси за поддръжка и обучение

 Български