Вступ

Aspose.Cells FOSS для .NET — це чиста бібліотека на керованому коді з ліцензією MIT, призначена для читання, запису та маніпулювання робочими книгами Excel .xlsx без будь-якої залежності від Microsoft Office. Встановлена як пакет Aspose.Cells_FOSS NuGet, вона інтегрується в будь-який проект .NET — консольні додатки, веб-API, фонова робота та безсерверні функції.

Цей пост пропонує покроковий огляд функцій публічного API, демонструючи, що можливо, і як викликати кожну можливість з коду C#.


Огляд функцій

Життєвий цикл робочої книги та листа

Точкою входу для будь-якої операції є клас Workbook. Створіть його з нуля за допомогою new Workbook() або завантажте існуючий .xlsx за допомогою new Workbook(filePath) чи new Workbook(stream). Переміщуйтеся між листами через Workbook.Worksheets, встановлюйте Worksheet.Name та Worksheet.VisibilityType, і зберігайте за допомогою Workbook.Save(). Для пошкоджених файлів передайте екземпляр LoadOptions з TryRepairPackage = true та 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);
}

Дані клітинок та формули

Записуйте значення в клітинки за допомогою Cell.PutValue() — перевантаження приймають string, int, double, decimal, bool і DateTime. Читайте значення назад через Cell.Value, Cell.StringValue і Cell.Formula. Встановлюйте формули Excel за допомогою властивості Cell.Formula; рядок формули зберігається при збереженні і переживає цикл перезавантаження.

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);

Стилізація клітинок

Застосовуйте об’єкти Style для керування шрифтом, заливкою, межами, форматом чисел та вирівнюванням. Отримайте поточний стиль за допомогою Cell.GetStyle(), змініть його, а потім застосуйте за допомогою Cell.SetStyle(). Для заливки фону встановіть Style.Pattern = FillPattern.Solid і призначте Color до Style.ForegroundColor. Використовуйте Cells.Merge() для охоплення діапазонів клітинок.

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}");

Умовне форматування

Прикріплюйте правила умовного форматування до діапазонів клітинок за допомогою ConditionalFormattingCollection. Правила підтримують FormatConditionType.CellValue, Expression, ColorScale, DataBar і IconSet. Використовуйте OperatorType для вказання операторів порівняння (Between, Equal, GreaterThan тощо), призначайте Style відповідним клітинкам і налаштовуйте пріоритет та поведінку «зупинити, якщо істина» для кожного правила.

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

Перевірка даних

Додавайте обмеження вводу до клітинок за допомогою Worksheet.Validations. Підтримувані типи перевірки включають ValidationType.List, Decimal, Custom та інші. Налаштовуйте підказки вводу (InputTitle, InputMessage) і повідомлення про помилки (ErrorTitle, ErrorMessage, ValidationAlertType). Використовуйте CellArea.CreateCellArea() для визначення діапазону перевірки і Validation.AddArea() для застосування правила до додаткових діапазонів.

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

Налаштування сторінки та параметри друку

Налаштуйте макет друку через Worksheet.PageSetup. Встановіть поля (LeftMarginInch, RightMarginInch, TopMarginInch, BottomMarginInch), Orientation, PaperSize, масштаб, область друку, рядки та стовпці заголовків, колонтитули та розриви сторінок. Усі налаштування зберігаються під час збереження-завантаження.

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

Налаштування листа та захист

Керуйте відображенням окремих листів за допомогою Worksheet.ShowGridlines, ShowRowColumnHeaders, ShowZeros, RightToLeft, Zoom та TabColor. Захищайте листи за допомогою Worksheet.Protect() і налаштовуйте детальні прапорці Protection (Objects, FormatCells, InsertRows, AutoFilter, SelectLockedCells). Керуйте висотою рядків, шириною стовпців, прихованими рядками/стовпцями та об’єднаними ділянками за допомогою Cells.Rows, Cells.Columns та 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");

Гіперпосилання та іменовані діапазони

Додайте зовнішні, внутрішні та mailto: гіперпосилання за допомогою HyperlinkCollection.Add(). Встановіть Hyperlink.TextToDisplay і Hyperlink.ScreenTip для видимих користувачем міток. Визначайте іменовані діапазони у межах робочої книги або листа за допомогою DefinedNameCollection.Add() — іменовані діапазони слугують стабільними якорями формул та джерелами даних діаграм, які зберігаються після перезавантаження файлу.

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);

Швидкий старт

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

Підтримувані формати

ФорматРозширенняЧитатиЗапис
Xlsx.xlsx
Auto(різні)

Відкрите ПЗ та ліцензування

Aspose.Cells FOSS для .NET опубліковано під ліцензією MIT і розповсюджується через NuGet як Aspose.Cells_FOSS. Воно підходить як для відкритих, так і для комерційних проєктів.


Початок роботи

Пов’язані ресурси