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() кругового проходу |
| Адреса гіперпосилання показує необроблену URL | TextToDisplay не встановлено | Встановити 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 | Параметри для стійкого до помилок завантаження файлів |