Введение
Aspose.Cells FOSS for .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 соответствующим ячейкам и настройте приоритет и
поведение stop-if-true для каждого правила.
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 | ✓ | ✓ |
| Авто | (различные) | ✓ | — |
Открытый исходный код и лицензирование
Aspose.Cells FOSS for .NET опубликован под лицензией MIT и распространяется через NuGet как
Aspose.Cells_FOSS. Он подходит как для открытых, так и для коммерческих проектов.