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życiu
Cell.SetStyle(). Aby ustawić wypełnienia 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, oraz
IconSet. 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 i
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 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

FormatRozszerzenieOdczytZapis
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.


Rozpoczęcie

Powiązane zasoby