Hvordan indlæses et regneark i .NET

Hvordan indlæses et regneark i .NET

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.

Trin-for-trin vejledning

Trin 1: Installer pakken

dotnet add package Aspose.Cells_FOSS

Kontroller, at pakningen er til stede:

dotnet list package | grep Aspose.Cells_FOSS

Trin 2: Import af navneområdet

Tilføj dette direktiv øverst i din C#-fil:

using Aspose.Cells_FOSS;

Trin 3: Lade en XLSX-fil op

Pass filvejen til … Workbook Biblioteket læser XLSX-filen og fylder in-memory arbejdsbog objektet.

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

Trin 4: Lade med fejl tolerante reparationsmuligheder

For filer, der kan have ZIP- eller XML-forstyrrelser, angives en LoadOptions genstand med TryRepairPackage og: TryRepairXml indstillet til true.- Lad os pakke opkaldet ind i en… try/catch for: WorkbookLoadException Hvis filen ikke kan genvindes.

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

Trin 5: Kontrollér belastningsdiagnostikken

Efter lastning skal der foretages inspektion. Workbook.LoadDiagnostics at se, om biblioteket har foretaget reparationer. HasRepairs er: true om der er foretaget reparation.; HasDataLossRisk er: true Hvis der er tale om en udskytning af data, kan det være nødvendigt at gentage disse. Issues til at få adgang til individuelle DiagnosticEntry - Det er jo ikke rigtigt.

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

Trin 6: Tilgang til data fra regnearket

Efter indlæsning kan du få adgang til regneark efter indeks eller navn og læse celleværdier ved hjælp af Cell.StringValue eller en anden 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);

Almindelige problemer og løsninger

WorkbookLoadException er kastet, selv med aktiverede reparationsmuligheder. Dette betyder, at filens ZIP-struktur er for beskadiget til reparationsalgoritmerne kan gendanne. Verificer filen er en gyldig Zip-arkiv (fx prøv unzip -t file.xlsxHvis filen er fuldstændig beskadiget, kan den ikke åbnes af et bibliotek.

Den indlæste arbejdsbog har færre ark end forventet. En reparationsoperation kan have tabt regneark, der refererer til manglende dele. LoadDiagnostics.Issues for poster med: DataLossRisk = true og underrette brugeren.

Celleværdier er tomme efter opladning. Sørg for, at du har adgang til det korrekte regnearkindeks eller navn. Brug wb.Worksheets.Count at bekræfte det forventede antal ark. Tjek også, om XLSX-filen ikke er adgangskodebeskyttet (passwordbeskyttende filer understøttes i øjeblikket ikke).

Workbook Konstruktor hænger på en stor fil. Konstruktoren er synkron og indlæser hele filen i hukommelsen. For meget store filer, kør belastningen på en baggrundstråd for at holde UI-respons.

DiagnosticEntry.Severity udstillinger Error men … HasRepairs er: false. HasRepairs Den viser, om en reparation er blevet gennemført med held og ikke om der er opdaget fejl. Error- alvorligt indtræden med RepairApplied = false betyder, at problemet blev opdaget, men ikke kunne repareres behandle dette som en mulig advarsel om dataintegritet.

Ofte stillede spørgsmål

Kan jeg indlæse en XLSX fil fra et Stream i stedet for en filevej?

Ja, det er den. Workbook Konstruktor har overbelastninger, der accepterer en Stream Pass din strøm langs en LoadOptions Hvis der er behov for fejl tolerant belastning.

Støtter biblioteket indlæsning af XLSX-filer, der er beskyttet med adgangskode?

Password-beskyttet filer er ikke i den aktuelle API overflade. Forsøg på at indlæse en vil resultere i et WorkbookLoadException.

Hvordan kontrollerer jeg, hvilket ark der er aktivt i den indlæste arbejdsbog?

Læs det. Workbook.Worksheets.ActiveSheetName at få navnet på det ark, der var aktiv sidst da filen blev gemt.

Kan jeg indlæse flere XLSX-filer samtidig?

Ja, hver for sig. Workbook Vi kan instanciere flere. Workbook objekter på separate tråde uden fælles tilstand.

Hvad sker der, hvis en formelcel er indlæst og det gemte resultat ikke findes?

Cell.StringValue returnerer en tom streng. Cell.Formula Den indkapslede værdi udfyldes kun, når Excel (eller en kompatibel applikation) åbner og gemmer filen.

Se også:

 Dansk