Wie lädt man ein Tabellenblatt in .NET auf ?

Wie lädt man ein Tabellenblatt in .NET auf ?

Aspose.Cells FOSS for .NET lets you open existing XLSX spreadsheets with a single constructor call and provides a fault-tolerant loading path for files that have minor structural corruption. Install the library from NuGet with dotnet add package Aspose.Cells_FOSS.

Schritt für Schritte

Schritt 1: Installieren des Pakets

dotnet add package Aspose.Cells_FOSS

Überprüfen Sie, ob die Verpackung vorhanden ist:

dotnet list package | grep Aspose.Cells_FOSS

Schritt 2: Importieren des Namensraums

Fügen Sie diese Richtlinie oben in Ihre C#-Datei hinzu:

using Aspose.Cells_FOSS;

Schritt 3: Laden einer XLSX-Datei ein

Übergeben Sie den Pfad der Datei an die Workbook Die Bibliothek liest die XLSX-Datei und füllt das Arbeitsbuchobjekt im Speicher.

using Aspose.Cells_FOSS;

var wb = new Workbook("data.xlsx");
Console.WriteLine("Loaded " + wb.Worksheets.Count + " sheet(s)");
Console.WriteLine("First sheet: " + wb.Worksheets[0].Name);
Console.WriteLine("A1 value: " + wb.Worksheets[0].Cells["A1"].StringValue);

Schritt 4: Laden Sie mit fehlertoleranten Reparaturoptionen auf

Für Dateien, die ZIP- oder XML-Verfälschungen haben können, geben Sie eine LoadOptions Gegenstand mit TryRepairPackage und . TryRepairXml auf die true.- Ich muss den Anruf in eine … try/catch für die WorkbookLoadException Falls die Datei nicht wiederhergestellt werden kann.

using Aspose.Cells_FOSS;

var opts = new LoadOptions
{
    TryRepairPackage = true,
    TryRepairXml = true,
};

try
{
    var wb = new Workbook("possibly-corrupt.xlsx", opts);
    Console.WriteLine("Loaded successfully");
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Unrecoverable file: " + ex.Message);
}

Schritt 5: Überprüfen Sie die Lastdiagnostik

Nach dem Laden überprüfen Sie die Workbook.LoadDiagnostics um zu sehen, ob die Bibliothek Reparaturen vorgenommen hat. HasRepairs ist . true wenn eine Reparatur durchgeführt wurde; HasDataLossRisk ist . true Die Daten wurden möglicherweise verworfen. Issues Zugang zu individuellen DiagnosticEntry Aufzeichnungen.

using Aspose.Cells_FOSS;

var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;

if (diag.HasRepairs)
{
    Console.WriteLine("Repairs were applied. Data loss risk: " + diag.HasDataLossRisk);
    foreach (var entry in diag.Issues)
        Console.WriteLine($"  [{entry.Severity}] {entry.Code}: {entry.Message}");
}
else
{
    Console.WriteLine("File loaded cleanly — no repairs.");
}

Schritt 6: Zugriff auf Arbeitsblattdaten

Nach dem Laden, Zugriff auf Arbeitsblätter nach Index oder Namen und lesen Sie Zellwerte mit Hilfe von Cell.StringValue oder Cell.Value.

using Aspose.Cells_FOSS;

var wb = new Workbook("data.xlsx");

// By index
var sheet = wb.Worksheets[0];
Console.WriteLine("Sheet: " + sheet.Name);
Console.WriteLine("A1: " + sheet.Cells["A1"].StringValue);

// By name
var named = wb.Worksheets["Report"];
if (named != null)
    Console.WriteLine("Report!B2: " + named.Cells["B2"].StringValue);

Häufige Probleme und Lösungen

WorkbookLoadException wird auch bei aktivierten Reparaturoptionen abgegeben. Dies bedeutet, dass die ZIP-Struktur der Datei zu beschädigt ist, um von den Reparaturalgorithmen wiederhergestellt werden zu können. unzip -t file.xlsx) Wenn die Datei vollständig beschädigt ist, kann sie von keiner Bibliothek geöffnet werden.

Das geladene Arbeitsbuch hat weniger Blätter als erwartet. Bei einer Reparatur sind möglicherweise Arbeitsblätter verloren gegangen, die auf fehlende Teile verwiesen haben. LoadDiagnostics.Issues für Eingaben mit: DataLossRisk = true und den Benutzer darüber in Kenntnis setzen.

Zellwerte sind nach der Belastung leer. Stellen Sie sicher, dass der richtige Arbeitsblattindex oder Name zugegriffen wird. Verwenden wb.Worksheets.Count Überprüfen Sie auch, ob die XLSX-Datei nicht passwortgeschützt ist (passwordgeschützte Dateien werden derzeit nicht unterstützt).

Workbook Konstruktor hängt auf einer großen Datei. Der Konstruktor ist synchron und lädt die gesamte Datei in den Speicher. Für sehr große Daten, laden Sie die Belastung auf einem Hintergrund-Thread aus, um die Benutzeroberfläche reaktionsschnell zu halten.

DiagnosticEntry.Severity Schauspielereien Error aber … HasRepairs ist . false. HasRepairs Die Ergebnisse der Untersuchung zeigen, ob eine Reparatur erfolgreich durchgeführt wurde und nicht, wenn Fehler festgestellt wurden. Error-Einführung von Schweregrad mit RepairApplied = false bedeutet, dass das Problem erkannt wurde, aber nicht behoben werden konnte dies als eine mögliche Warnung zur Datenintegrität zu behandeln.

Häufig gestellte Fragen

Kann ich eine XLSX-Datei von einem Stream anstelle eines Pfades laden?

Ja, die… Workbook Konstrukteur hat Überlastungen, die eine Stream Pass Ihren Strom entlang einer LoadOptions Die Anlage ist in der Regel für den Fall, dass eine fehlertolerante Beladung erforderlich ist.

Unterstützt die Bibliothek das Laden von passwortgeschützten XLSX-Dateien?

Passwortgeschützte Dateien befinden sich nicht in der aktuellen API-Oberfläche. Der Versuch, eine zu laden, führt zu einer WorkbookLoadException.

Wie kann ich überprüfen, welches Blatt im geladenen Arbeitsbuch aktiv ist?

Lesen Sie . Workbook.Worksheets.ActiveSheetName um den Namen des Blattes zu erhalten, das zum letzten Mal aktiv war, als die Datei gespeichert wurde.

Kann ich mehrere XLSX-Dateien gleichzeitig laden?

Ja, jeder von ihnen. Workbook Instanz ist unabhängig. Sie können instanziate mehrere Workbook Objekte auf separaten Threads ohne gemeinsamen Zustand.

Was passiert, wenn eine Formelzelle geladen ist und das zwischengespeicherte Ergebnis fehlt?

Cell.StringValue gibt eine leere Zeichenfolge zurück. Cell.Formula Der zwischengespeicherte Wert wird nur ausgefüllt, wenn Excel (oder eine kompatiblen Anwendung) die Datei öffnet und speichert.

Siehe auch:

 Deutsch