Wprowadzenie
Aspose.Cells FOSS dla .NET to czysto zarządzana, licencjonowana na licencji MIT biblioteka do odczytywania, zapisywania i manipulowania skoroszytami Excel .xlsx bez żadnej zależności od Microsoft Office. Zainstalowana jako pakiet Aspose.Cells_FOSS NuGet, integruje się z każdym projektem .NET — aplikacjami konsolowymi, interfejsami web API, procesami w tle i funkcjami serverless.
Ten wpis zapewnia krok po kroku przegląd funkcji publicznego API, pokazując, co jest możliwe i jak wywołać każdą możliwość z kodu C#.
Przegląd funkcji
Cykl życia skoroszytu i arkusza
Punktem wejścia dla każdej operacji jest klasa Workbook. Utwórz ją od podstaw przy użyciu new Workbook() lub załaduj istniejący .xlsx za pomocą new Workbook(filePath) lub new Workbook(stream). Przeglądaj arkusze za pośrednictwem Workbook.Worksheets, ustaw Worksheet.Name i Worksheet.VisibilityType, oraz zapisz przy użyciu Workbook.Save(). W przypadku uszkodzonych plików przekaż instancję LoadOptions z TryRepairPackage = true i 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);
}
Dane komórek i formuły
Zapisz wartości do komórek przy użyciu Cell.PutValue() — przeciążenia akceptują string, int, double, decimal, bool i DateTime. Odczytaj wartości z powrotem za pomocą Cell.Value, Cell.StringValue i Cell.Formula. Ustaw formuły Excel przy użyciu właściwości Cell.Formula; ciąg formuły jest zachowywany przy zapisie i przetrwa cykl ponownego ładowania.
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);
Stylowanie komórek
Zastosuj obiekty Style, aby kontrolować czcionkę, wypełnienie, krawędzie, format liczbowy i wyrównanie. Pobierz bieżący styl za pomocą Cell.GetStyle(), zmodyfikuj go, a następnie zatwierdź przy użyciu Cell.SetStyle(). Dla wypełnień tła ustaw Style.Pattern = FillPattern.Solid i przypisz Color do Style.ForegroundColor. Użyj Cells.Merge(), aby objąć zakresy komórek.
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}");
Formatowanie warunkowe
Dołącz reguły formatowania warunkowego do zakresów komórek za pomocą ConditionalFormattingCollection. Reguły obsługują FormatConditionType.CellValue, Expression, ColorScale, DataBar i IconSet. Użyj OperatorType, aby określić operatory porównania (Between, Equal, GreaterThan itp.), przypisz Style do dopasowanych komórek oraz skonfiguruj priorytet i zachowanie stop-if-true dla każdej reguły.
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");
Walidacja danych
Dodaj ograniczenia wprowadzania do komórek przy użyciu Worksheet.Validations. Obsługiwane typy walidacji obejmują ValidationType.List, Decimal, Custom i inne. Skonfiguruj podpowiedzi wejściowe (InputTitle, InputMessage) oraz komunikaty o błędach (ErrorTitle, ErrorMessage, ValidationAlertType). Użyj CellArea.CreateCellArea(), aby określić zakres walidowany, oraz Validation.AddArea(), aby zastosować regułę do dodatkowych zakresów.
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");
Ustawienia strony i opcje drukowania
Skonfiguruj układ wydruku za pomocą Worksheet.PageSetup. Ustaw marginesy (LeftMarginInch, RightMarginInch, TopMarginInch, BottomMarginInch), Orientation, PaperSize, skalę, obszar wydruku, wiersze i kolumny tytułowe, nagłówki i stopki oraz podziały stron. Wszystkie ustawienia przetrwają cykl zapisu i wczytania.
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");
Ustawienia arkusza i ochrona
Kontroluj wyświetlanie poszczególnych arkuszy przy użyciu Worksheet.ShowGridlines, ShowRowColumnHeaders, ShowZeros, RightToLeft, Zoom oraz TabColor. Chroń arkusze za pomocą Worksheet.Protect() i konfigurować szczegółowe flagi Protection (Objects, FormatCells, InsertRows, AutoFilter, SelectLockedCells). Zarządzaj wysokością wierszy, szerokością kolumn, ukrytymi wierszami/kolumnami oraz scalonymi obszarami za pomocą Cells.Rows, Cells.Columns i 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");
Hyperlinki i zakresy nazwane
Dodaj zewnętrzne, wewnętrzne i mailto: hyperlinki za pomocą HyperlinkCollection.Add(). Ustaw Hyperlink.TextToDisplay i Hyperlink.ScreenTip dla widocznych dla użytkownika etykiet. Zdefiniuj zakresy nazwane w zakresie skoroszytu lub arkusza przy użyciu DefinedNameCollection.Add() — zakresy nazwane służą jako stabilne kotwice formuł i źródła danych wykresów, które przetrwają ponowne wczytanie pliku.
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);
Szybki start
dotnet add package Aspose.Cells.FOSSusing 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");
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| Auto | (różne) | ✓ | — |
Open Source i licencjonowanie
Aspose.Cells FOSS dla .NET jest publikowany na licencji MIT i dystrybuowany przez NuGet jako Aspose.Cells_FOSS. Jest odpowiedni zarówno dla projektów open-source, jak i komercyjnych.