Features

Функції

Aspose.Cells FOSS для .NET — це чиста керована бібліотека .NET для створення, читання та модифікації електронних таблиць Excel XLSX. Точкою входу є клас Workbook, який надає доступ до листів, визначених імен та операцій збереження/завантаження. На цій сторінці підсумовано всі основні області функціональності з короткими прикладами коду.


Створення, завантаження та збереження робочої книги

Створіть нову робочу книгу за допомогою new Workbook(). Завантажте існуючий файл XLSX, передавши шлях до файлу в конструктор. Використовуйте LoadOptions для ввімкнення завантаження з обробкою помилок. Викличте Workbook.Save(path) для збереження змін.

using Aspose.Cells_FOSS;

// New workbook
var wb = new Workbook();
wb.Worksheets[0].Cells["A1"].PutValue("Hello");
wb.Save("output.xlsx");

// Load with repair options
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
try
{
    var loaded = new Workbook("input.xlsx", opts);
    Console.WriteLine(loaded.Worksheets[0].Cells["A1"].StringValue);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Load failed: " + ex.Message);
}

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

Використовуйте Cell.PutValue() для запису рядків, цілих чисел, десяткових, логічних значень та DateTime значень. Встановіть Cell.Formula, щоб призначити формулу у форматі, сумісному з Excel. Зчитайте текст відображення за допомогою Cell.StringValue та необроблене значення за допомогою Cell.Value.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

ws.Cells["A1"].PutValue("Qty");
ws.Cells["B1"].PutValue("Price");
ws.Cells["C1"].PutValue("Total");
ws.Cells["A2"].PutValue(10);
ws.Cells["B2"].PutValue(4.99m);
ws.Cells["C2"].Formula = "=A2*B2";

wb.Save("data.xlsx");

var loaded = new Workbook("data.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C2"].StringValue); // 49.9

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

Отримайте та змініть об’єкт Style для будь-якої клітини з Cell.GetStyle() та Cell.SetStyle(). Клас Style забезпечує Font (жирний, курсив, розмір, назва), ForegroundColor, Pattern (типу FillPattern), HorizontalAlignment (за допомогою HorizontalAlignmentType) та керування межами через Borders.

using Aspose.Cells_FOSS;

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

var style = cell.GetStyle();
style.Font.Bold = true;
style.Font.Size = 14;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 198, 239, 206);
style.HorizontalAlignment = HorizontalAlignmentType.Center;
cell.SetStyle(style);

wb.Save("styled.xlsx");

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

Worksheet.ConditionalFormattings повертає ConditionalFormattingCollection. Викличте Add(), щоб створити набір правил, потім AddCondition(), щоб додати правила, використовуючи FormatConditionType та OperatorType. Підтримувані типи умов включають CellValue, Expression, ColorScale, DataBar та IconSet.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 10; i++)
    ws.Cells[i, 0].PutValue(i + 1);

var ruleSet = ws.ConditionalFormattings[ws.ConditionalFormattings.Add()];
ruleSet.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = ruleSet[ruleSet.AddCondition(FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var ruleStyle = rule.Style;
ruleStyle.Pattern = FillPattern.Solid;
ruleStyle.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
rule.Style = ruleStyle;

wb.Save("cf.xlsx");

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

Worksheet.Validations повертає ValidationCollection. Викличте Add(CellArea), щоб створити Validation для діапазону клітин. Встановіть властивість Type, використовуючи ValidationType (List, Decimal або Custom). Налаштуйте Formula1, Formula2, Operator, InputTitle, InputMessage, ErrorTitle та ErrorMessage.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed,Pending\"";
listVal.InCellDropDown = true;

var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ShowError = true;

wb.Save("validation.xlsx");

Автофільтр

Worksheet.AutoFilter відкриває об’єкт AutoFilter. Встановіть AutoFilter.Range, щоб визначити діапазон рядка заголовка. Доступ до AutoFilter.FilterColumns (колекція) і викличте Add(columnIndex), щоб активувати фільтрацію у конкретному стовпці.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

ws.Cells["A1"].PutValue("Name");
ws.Cells["B1"].PutValue("Region");
ws.Cells["C1"].PutValue("Sales");
ws.Cells["A2"].PutValue("Alice"); ws.Cells["B2"].PutValue("North"); ws.Cells["C2"].PutValue(1200);

ws.AutoFilter.Range = "A1:C1";
ws.AutoFilter.FilterColumns.Add(1);

wb.Save("filter.xlsx");

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

Worksheet.Hyperlinks — це HyperlinkCollection. Використовуйте Add(), щоб вставити зовнішні URL-адреси, внутрішні посилання на клітинки або посилання mailto. Встановіть Hyperlink.TextToDisplay і Hyperlink.ScreenTip для тексту, що бачить користувач. Workbook.DefinedNames — це DefinedNameCollection; викличте Add(name, refersTo), щоб створити іменовані діапазони.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

ws.Cells["A1"].PutValue("Docs");
var link = ws.Hyperlinks[ws.Hyperlinks.Add("A1", 1, 1, "https://docs.aspose.org/cells/net/")];
link.TextToDisplay = "Documentation";

wb.DefinedNames[wb.DefinedNames.Add("DataRange", "Sheet1!$A$1:$D$10")].Comment = "Main data range";

wb.Save("links.xlsx");

Налаштування сторінки

Worksheet.PageSetup керує полями друку, орієнтацією, розміром паперу, областю друку, рядками/стовпцями заголовків, колонтитулами та розривами сторінок. Використовуйте перерахування PageOrientationType і PaperSizeType.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ps = wb.Worksheets[0].PageSetup;
ps.Orientation = PageOrientationType.Landscape;
ps.PaperSize = PaperSizeType.PaperA4;
ps.PrintArea = "$A$1:$H$50";
ps.CenterHeader = "My Report";
ps.CenterHorizontally = true;
ps.AddHorizontalPageBreak(25);

wb.Save("paged.xlsx");

Керування аркушами

Додавайте, перейменовуйте, приховуйте та змінюйте порядок аркушів за допомогою WorksheetCollection. WorksheetCollection.Add(name) повертає індекс нового листа. Встановіть Worksheet.VisibilityType за допомогою VisibilityType. Об’єднуйте клітинки за допомогою Cells.Merge() та керуйте розмірами рядків/стовпців через Cells.Rows і Cells.Columns.

using Aspose.Cells_FOSS;

var wb = new Workbook();
wb.Worksheets[0].Name = "Summary";
var dataIdx = wb.Worksheets.Add("Data");
wb.Worksheets[dataIdx].VisibilityType = VisibilityType.Hidden;
wb.Worksheets.ActiveSheetName = "Summary";

var ws = wb.Worksheets["Summary"];
ws.Cells["A1"].PutValue("Title");
ws.Cells.Merge(0, 0, 1, 4);
ws.Cells.Rows[0].Height = 30d;
ws.Cells.Columns[0].Width = 20d;

wb.Save("worksheets.xlsx");

Поради та найкращі практики

  • Завжди перехоплюйте WorkbookLoadException при завантаженні файлів з шляхів, що надаються користувачем.
  • Використовуйте Cell.PutValue() з точним типом .NET, який ви плануєте зберігати — передайте decimal для валют, DateTime для дат.
  • Прочитайте Cell.StringValue для тексту відображення; використовуйте Cell.Value, коли потрібен необроблений об’єкт .NET.
  • Створюйте набори правил умовного форматування на найширшому діапазоні, який вам потрібен — правила для кожного рядка є витратними у великих таблицях.
  • Викличте wb.Save() один раз в кінці, а не після кожного запису комірки.

Типові проблеми

ПроблемаПричинаВиправлення
WorkbookLoadException під час відкриттяПошкоджена структура ZIP у XLSXВстановити LoadOptions.TryRepairPackage = true
Формула повертає порожнє StringValueФормула не перераховується при завантаженніДоступ до Cell.StringValue після Workbook.Save() кругового проходу
Адреса гіперпосилання показує необроблену URLTextToDisplay не встановленоВстановити Hyperlink.TextToDisplay після Add()
Вкладка листа не видимаVisibilityType встановлено в HiddenВстановити ws.VisibilityType = VisibilityType.Visible

FAQ

Чи Aspose.Cells FOSS для .NET вимагає Microsoft Office?

Ні. Бібліотека є чистим керованим кодом без залежності від Office, Excel або COM interop.

Які формати файлів підтримуються?

XLSX (читання та запис). CSV, ODS, PDF та двійковий XLS не підтримуються у цьому випуску.

Чи можу я використовувати цю бібліотеку у комерційному застосунку?

Так. Aspose.Cells FOSS опубліковано під ліцензією MIT, яка дозволяє необмежене комерційне використання без роялті.

Яка мінімальна версія .NET?

.NET 6.0 або пізніше.

Як застосувати колір фону до клітинки?

Встановіть style.Pattern = FillPattern.Solid і style.ForegroundColor = Color.FromArgb(...), потім викличте cell.SetStyle(style).


API Reference Підсумок

Клас / МетодОпис
WorkbookКореневий клас — створювати, завантажувати, зберігати робочі книги
Workbook.WorksheetsПовертає WorksheetCollection
Workbook.Save(path)Зберігає робочу книгу на диск
Workbook.DefinedNamesКолекція іменованих діапазонів
Worksheet.CellsДоступ до сітки клітинок
Worksheet.ConditionalFormattingsНабори правил умовного форматування
Worksheet.ValidationsПравила перевірки даних
Worksheet.AutoFilterНалаштування автофільтра
Worksheet.HyperlinksКолекція гіперпосилань
Worksheet.PageSetupНалаштування макету друку
Cell.PutValue()Записати типізовані дані комірки
Cell.FormulaРядок формули, сумісний з Excel
Cell.GetStyle() / Cell.SetStyle()Читати/записувати стиль комірки
Style.PatternШаблон заповнення (FillPattern enum)
Style.HorizontalAlignmentВирівнювання комірки (HorizontalAlignmentType)
LoadOptionsПараметри для стійкого до помилок завантаження файлів

Дивіться також

 Українська