Функции
Функции
Aspose.Cells FOSS for .NET е чисто управлявана .NET библиотека за създаване, четене и модифициране на Excel XLSX електронни таблици. Входната точка е класът Workbook, който предоставя достъп до работни листове, дефинирани имена и операции за запазване/зареждане. Тази страница обобщава всяка основна област на функционалност с кратки примерни кодове.
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 = System.Drawing.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 = System.Drawing.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 (FilterColumnCollection) и извикайте 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 enums.
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 License, който позволява неограничено комерсиално използване без royalties.
Каква е минималната версия на .NET?
.NET 6.0 или по-ново.
Как да приложа цвят на фона към клетка?
Задайте style.Pattern = FillPattern.Solid и style.ForegroundColor = System.Drawing.Color.FromArgb(...), след това извикайте cell.SetStyle(style).
Обобщение на API справката
| Class / Method | Description |
|---|---|
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 | Шаблон за запълване (enum FillPattern) |
Style.HorizontalAlignment | Подравняване на клетка (HorizontalAlignmentType) |
LoadOptions | Опции за устойчиво към грешки зареждане на файлове |