Wprowadzenie
Aspose.Cells FOSS for .NET jest czystą biblioteką w zarządzanym kodzie, licencjonowaną na licencji MIT, służącą do odczytu, zapisu,
i manipulacji skoroszytami Excel .xlsx bez żadnej zależności od Microsoft Office. Zainstalowana jako
Aspose.Cells_FOSS pakiet NuGet, integruje się z każdym projektem .NET — aplikacjami konsolowymi, interfejsami web
API, pracownikami w tle i funkcjami serverless.
Ten post zapewnia szczegółowy przewodnik po public API, pokazując, co jest możliwe i jak wywołać każdą funkcję 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 wczytaj istniejącą .xlsx za pomocą new Workbook(filePath) lub new Workbook(stream). Przeglądaj arkusze za pomocą 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
Napisz 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 wczytania.
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 do kontrolowania czcionki, wypełnienia, obramowań, formatu liczb i wyrównania.
Pobierz bieżący styl za pomocą Cell.GetStyle(), zmodyfikuj go, a następnie zatwierdź przy użyciuCell.SetStyle(). Aby ustawić wypełnienia tła, ustaw Style.Pattern = FillPattern.Solid i przypiszColor 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, orazIconSet. Użyj OperatorType, aby określić operatory porównania (Between, Equal,GreaterThan, itp.), przypisz Style do dopasowanych komórek i skonfiguruj priorytet oraz
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 wejściowe 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 iValidation.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 per‑arkusz za pomocą Worksheet.ShowGridlines, ShowRowColumnHeaders,
ShowZeros, RightToLeft, Zoom i TabColor. Chroń arkusze przy użyciu Worksheet.Protect()
i konfiguruj szczegółowe flagi Protection (Objects, FormatCells, InsertRows,
AutoFilter, SelectLockedCells). Zarządzaj wysokością wiersza, szerokością kolumny, ukrytymi wierszami/kolumnami oraz
połączonymi regionami 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");
Hiperłącza i nazwy zakresów
Dodaj zewnętrzne, wewnętrzne i mailto: hiperłącza za pomocą HyperlinkCollection.Add(). Ustaw
Hyperlink.TextToDisplay i Hyperlink.ScreenTip jako widoczne dla użytkownika etykiety. Zdefiniuj nazwane
zakresy w skoroszycie lub na poziomie arkusza przy użyciu DefinedNameCollection.Add() — nazwane zakresy 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_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");
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| Auto | (różne) | ✓ | — |
Open Source i licencjonowanie
Aspose.Cells FOSS for .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.