Einleitung
Aspose.Cells FOSS for .NET ist eine reine Managed‑Code‑Bibliothek, MIT‑lizenziert, zum Lesen, Schreiben,
und zum Manipulieren von Excel .xlsx Arbeitsmappen ohne jegliche Microsoft‑Office‑Abhängigkeit. Installiert als
das Aspose.Cells_FOSS NuGet‑Paket, integriert es sich in jedes .NET‑Projekt — Konsolen‑Apps, Web‑APIs,
Hintergrund‑Worker und serverlose Funktionen.
Dieser Beitrag bietet eine schrittweise Durchsicht der öffentlichen API, zeigt, was möglich ist und wie jede Funktionalität aus C#‑Code aufgerufen werden kann.
Funktionsübersicht
Arbeitsmappe und Arbeitsblatt‑Lebenszyklus
Der Einstiegspunkt für jede Operation ist die Workbook-Klasse. Erstellen Sie eine von Grund auf mit new Workbook(), oder laden Sie eine vorhandene .xlsx mit new Workbook(filePath) oder new Workbook(stream). Navigieren Sie durch Tabellenblätter über Workbook.Worksheets, setzen Sie Worksheet.Name und Worksheet.VisibilityType und speichern Sie mit Workbook.Save(). Für beschädigte Dateien übergeben Sie eine LoadOptions-Instanz mit TryRepairPackage = true und 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);
}
Zellendaten und Formeln
Schreiben Sie Werte in Zellen mit Cell.PutValue() — Überladungen akzeptieren string, int, double,
decimal, bool und DateTime. Lesen Sie Werte zurück über Cell.Value, Cell.StringValue und
Cell.Formula. Setzen Sie Excel‑Formeln mit der Cell.Formula‑Eigenschaft; die Formelzeichenfolge wird
beim Speichern beibehalten und übersteht einen Neuladevorgang.
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);
Zellformatierung
Wenden Sie Style‑Objekte an, um Schriftart, Füllung, Rahmen, Zahlenformat und Ausrichtung zu steuern.
Rufen Sie den aktuellen Stil mit Cell.GetStyle() ab, ändern Sie ihn und übernehmen Sie ihn mitCell.SetStyle().
Für Hintergrundfüllungen setzen Sie Style.Pattern = FillPattern.Solid und weisen einColor zu Style.ForegroundColor zu.
Verwenden Sie Cells.Merge(), um Zellbereiche zu spannen.
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}");
Bedingte Formatierung
Binden Sie bedingte Formatierungsregeln an Zellbereiche über ConditionalFormattingCollection.
Regeln unterstützen FormatConditionType.CellValue, Expression, ColorScale, DataBar, undIconSet. Verwenden Sie OperatorType, um Vergleichsoperatoren anzugeben (Between, Equal,GreaterThan usw.), weisen Sie den übereinstimmenden Zellen ein Style zu und konfigurieren Sie Priorität und
stop-if-true‑Verhalten pro Regel.
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");
Datenvalidierung
Fügen Sie Zellen Eingabebeschränkungen mit Worksheet.Validations hinzu. Unterstützte Validierungstypen
einschließlich ValidationType.List, Decimal, Custom und mehr. Konfigurieren Sie Eingabeaufforderungen
(InputTitle, InputMessage) und Fehlermeldungen (ErrorTitle, ErrorMessage,ValidationAlertType). Verwenden Sie CellArea.CreateCellArea(), um den validierten Bereich zu definieren undValidation.AddArea(), um eine Regel auf zusätzliche Bereiche anzuwenden.
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");
Seitenlayout und Druckoptionen
Konfigurieren Sie das Drucklayout über Worksheet.PageSetup. Legen Sie Ränder (LeftMarginInch,
RightMarginInch, TopMarginInch, BottomMarginInch), Orientation, PaperSize, Maßstab,
Druckbereich, Titelzeilen und -spalten, Kopf- und Fußzeilen sowie Seitenumbrüche fest. Alle Einstellungen überstehen
einen Speicher‑Lade‑Durchlauf.
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");
Arbeitsblatt‑Einstellungen und –Schutz
Steuern Sie die Anzeige pro Blatt mit Worksheet.ShowGridlines, ShowRowColumnHeaders,
ShowZeros, RightToLeft, Zoom und TabColor. Schützen Sie Blätter mit Worksheet.Protect()
und konfigurieren Sie feinkörnige Protection‑Flags (Objects, FormatCells, InsertRows,
AutoFilter, SelectLockedCells). Verwalten Sie Zeilenhöhe, Spaltenbreite, ausgeblendete Zeilen/Spalten
und zusammengeführte Bereiche über Cells.Rows, Cells.Columns und 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");
Hyperlinks und benannte Bereiche
Fügen Sie externe, interne und mailto: Hyperlinks über HyperlinkCollection.Add() hinzu. SetzenHyperlink.TextToDisplay und Hyperlink.ScreenTip für benutzerfreundliche Beschriftungen. Definieren Sie benannte
Bereiche im Arbeitsmappen- oder Blattbereich mithilfe von DefinedNameCollection.Add() — benannte Bereiche dienen als
stabile Formelanker und Diagrammdatenquellen, die beim Neuladen der Datei erhalten bleiben.
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);
Schnellstart
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");
Unterstützte Formate
| Format | Erweiterung | Lesen | Schreiben |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| Auto | (verschiedene) | ✓ | — |
Open Source & Lizenzierung
Aspose.Cells FOSS for .NET wird unter der MIT-Lizenz veröffentlicht und über NuGet alsAspose.Cells_FOSS verteilt. Es ist sowohl für Open-Source- als auch für kommerzielle Projekte geeignet.