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.9Stylowanie 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
WorkbookLoadExceptionpodczas ładowania plików z ścieżek podanych przez użytkownika. - Używaj
Cell.PutValue()z dokładnym typem .NET, który zamierzasz przechowywać — podajdecimaldla waluty,DateTimedla dat. - Odczytaj
Cell.StringValuedla tekstu wyświetlanego; użyjCell.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
| Problem | Przyczyna | Naprawa |
|---|---|---|
WorkbookLoadException przy otwarciu | Uszkodzona struktura ZIP w pliku XLSX | Ustaw LoadOptions.TryRepairPackage = true |
Formuła zwraca pusty StringValue | Formuła nie jest przeliczana przy ładowaniu | Dostęp do Cell.StringValue po pełnym cyklu Workbook.Save() |
| Adres hiperłącza wyświetla surowy URL | TextToDisplay nie ustawiono | Ustaw Hyperlink.TextToDisplay po Add() |
| Karta arkusza nie jest widoczna | VisibilityType ustawiono na Hidden | Ustaw |
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 / Metoda | Opis |
|---|---|
Workbook | Klasa główna — tworzenie, ładowanie, zapisywanie skoroszytów |
Workbook.Worksheets | Zwraca WorksheetCollection |
Workbook.Save(path) | Zapisuje skoroszyt na dysku |
Workbook.DefinedNames | Kolekcja nazwanych zakresów |
Worksheet.Cells | Dostęp do siatki komórek |
Worksheet.ConditionalFormattings | Zestawy reguł formatowania warunkowego |
Worksheet.Validations | Reguły walidacji danych |
Worksheet.AutoFilter | Konfiguracja automatycznego filtru |
Worksheet.Hyperlinks | Zbiór hiperłączy |
Worksheet.PageSetup | Ustawienia 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.Pattern | Wzorzec wypełnienia (FillPattern enum) |
Style.HorizontalAlignment | Wyrównanie komórki (HorizontalAlignmentType) |
LoadOptions | Opcje ładowania plików odpornych na błędy |