Features

Funkcje

Aspose.Cells FOSS dla .NET to czysta zarządzana biblioteka .NET do tworzenia, odczytywania i modyfikowania arkuszy kalkulacyjnych Excel XLSX. Punkt wejścia to klasa Workbook, która zapewnia dostęp do arkuszy, zdefiniowanych nazw oraz operacji zapisu/odczytu. Ta strona podsumowuje wszystkie główne obszary funkcji wraz z krótkimi przykładami kodu.


Tworzenie, ładowanie i zapisywanie skoroszytu

Utwórz nowy skoroszyt za pomocą new Workbook(). Załaduj istniejący plik XLSX, przekazując ścieżkę do pliku do konstruktora. Użyj LoadOptions, aby włączyć tolerancyjne na błędy ładowanie. Wywołaj Workbook.Save(path), aby zachować zmiany.

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);
}

Dane i formuły komórek

Użyj Cell.PutValue(), aby zapisywać ciągi znaków, liczby całkowite, liczby dziesiętne, wartości logiczne oraz wartości DateTime. Ustaw Cell.Formula, aby przypisać formułę kompatybilną z Excelem w formie ciągu znaków. Odczytaj wyświetlany tekst za pomocą Cell.StringValue oraz surową wartość za pomocą 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

Stylowanie komórek

Pobierz i zmodyfikuj obiekt Style dla dowolnej komórki z Cell.GetStyle() i Cell.SetStyle(). Klasa Style zapewnia Font (pogrubienie, kursywa, rozmiar, nazwa), ForegroundColor, Pattern (typu FillPattern), HorizontalAlignment (za pomocą HorizontalAlignmentType) oraz kontrolę obramowań poprzez 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");

Formatowanie warunkowe

Worksheet.ConditionalFormattings zwraca ConditionalFormattingCollection. Wywołaj Add(), aby utworzyć zestaw reguł, a następnie AddCondition(), aby dodać reguły przy użyciu FormatConditionType i OperatorType. Obsługiwane typy warunków obejmują CellValue, Expression, ColorScale, DataBar oraz 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");

Walidacja danych

Worksheet.Validations zwraca ValidationCollection. Wywołaj Add(CellArea), aby utworzyć Validation dla zakresu komórek. Ustaw własność Type przy użyciu ValidationType (List, Decimal lub Custom). Skonfiguruj Formula1, Formula2, Operator, InputTitle, InputMessage, ErrorTitle oraz 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");

Auto-filtr

Worksheet.AutoFilter udostępnia obiekt AutoFilter. Ustaw AutoFilter.Range, aby określić zakres wiersza nagłówka. Uzyskaj dostęp do AutoFilter.FilterColumns (kolekcja) i wywołaj Add(columnIndex), aby aktywować filtrowanie w określonej kolumnie.

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");

Hiperłącza i nazwy zdefiniowane

Worksheet.Hyperlinks jest HyperlinkCollection. Wywołaj Add(), aby wstawić zewnętrzne adresy URL, wewnętrzne odwołania do komórek lub linki mailto. Ustaw Hyperlink.TextToDisplay i Hyperlink.ScreenTip dla tekstu widocznego dla użytkownika. Workbook.DefinedNames jest DefinedNameCollection; wywołaj Add(name, refersTo), aby utworzyć nazwane zakresy.

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");

Ustawienia strony

Worksheet.PageSetup kontroluje marginesy wydruku, orientację, rozmiar papieru, obszar wydruku, wiersze/kolumny tytułowe, nagłówki, stopki i podziały stron. Użyj wyliczeń PageOrientationType i 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");

Zarządzanie arkuszami

Dodawaj, zmieniaj nazwę, ukrywaj i zmieniaj kolejność arkuszy za pomocą WorksheetCollection. WorksheetCollection.Add(name) zwraca indeks nowego arkusza. Ustaw Worksheet.VisibilityType przy użyciu VisibilityType. Scal komórki za pomocą Cells.Merge() i kontroluj rozmiary wierszy/kolumn poprzez Cells.Rows i 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");

Wskazówki i najlepsze praktyki

  • Zawsze obsługuj WorkbookLoadException podczas ładowania plików z ścieżek podanych przez użytkownika.
  • Używaj Cell.PutValue() z dokładnym typem .NET, który zamierzasz przechowywać — podaj decimal dla waluty, DateTime dla dat.
  • Odczytaj Cell.StringValue dla tekstu wyświetlanego; użyj Cell.Value, gdy potrzebujesz surowego obiektu .NET.
  • Utwórz zestawy reguł formatowania warunkowego na najszerszym zakresie, którego potrzebujesz — reguły dla każdego wiersza są kosztowne w dużych arkuszach.
  • Wywołaj wb.Save() raz na końcu zamiast po każdym zapisie komórki.

Typowe problemy

ProblemPrzyczynaNaprawa
WorkbookLoadException przy otwarciuUszkodzona struktura ZIP w pliku XLSXUstaw LoadOptions.TryRepairPackage = true
Formuła zwraca pusty StringValueFormuła nie jest przeliczana przy ładowaniuDostęp do Cell.StringValue po pełnym cyklu Workbook.Save()
Adres hiperłącza wyświetla surowy URLTextToDisplay nie ustawionoUstaw Hyperlink.TextToDisplay po Add()
Karta arkusza nie jest widocznaVisibilityType ustawiono na HiddenUstaw

FAQ

Czy Aspose.Cells FOSS dla .NET wymaga Microsoft Office?

Nie. Biblioteka jest czystym kodem zarządzanym i nie ma zależności od Office, Excel ani interoperacyjności COM.

Jakie formaty plików są obsługiwane?

XLSX (odczyt i zapis). CSV, ODS, PDF oraz binarny XLS nie są obsługiwane w tym wydaniu.

Czy mogę używać tej biblioteki w aplikacji komercyjnej?

Tak. Aspose.Cells FOSS jest publikowane na licencji MIT, która zezwala na nieograniczone komercyjne użycie bez żadnych opłat licencyjnych.

Jaka jest minimalna wersja .NET?

.NET 6.0 lub nowsza.

Jak zastosować kolor tła do komórki?

Ustaw style.Pattern = FillPattern.Solid i style.ForegroundColor = Color.FromArgb(...), a następnie wywołaj cell.SetStyle(style).


API Reference Podsumowanie

Klasa / MetodaOpis
WorkbookKlasa główna — tworzenie, ładowanie, zapisywanie skoroszytów
Workbook.WorksheetsZwraca WorksheetCollection
Workbook.Save(path)Zapisuje skoroszyt na dysku
Workbook.DefinedNamesKolekcja nazwanych zakresów
Worksheet.CellsDostęp do siatki komórek
Worksheet.ConditionalFormattingsZestawy reguł formatowania warunkowego
Worksheet.ValidationsReguły walidacji danych
Worksheet.AutoFilterKonfiguracja automatycznego filtru
Worksheet.HyperlinksZbiór hiperłączy
Worksheet.PageSetupUstawienia układu wydruku
Cell.PutValue()Zapisz typowane dane komórki
Cell.FormulaŁańcuch formuły zgodny z Excel
Cell.GetStyle() / Cell.SetStyle()Odczyt/zapis stylu komórki
Style.PatternWzorzec wypełnienia (FillPattern enum)
Style.HorizontalAlignmentWyrównanie komórki (HorizontalAlignmentType)
LoadOptionsOpcje ładowania plików odpornych na błędy

Zobacz także

 Polski