Ako načítať tabuľku v .NET

Ako načítať tabuľku v .NET

Aspose.Cells FOSS for .NET vám umožňuje otvoriť existujúce XLSX tabuľky jediným volaním konštruktora a poskytuje odolnú voči chybám cestu načítania pre súbory, ktoré majú menšie štrukturálne poškodenie. Knižnicu nainštalujte z NuGet pomocou dotnet add package Aspose.Cells_FOSS.

Sprievodca krok za krokom

Krok 1: Nainštalovať balík

dotnet add package Aspose.Cells_FOSS

Skontrolujte, či je balík prítomný:

dotnet list package | grep Aspose.Cells_FOSS

Krok 2: Importovať menný priestor

Pridajte túto direktívu na začiatok vášho súboru C#:

using Aspose.Cells_FOSS;

Krok 3: Načítajte súbor XLSX

Zadajte cestu k súboru do konštruktora Workbook. Knižnica načíta súbor XLSX a naplní objekt pracovného zošita v pamäti.

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

Krok 4: Načítať s možnosťami opravy odolnej voči chybám

Pre súbory, ktoré môžu mať poškodenie ZIP alebo XML, poskytnite objekt LoadOptions s TryRepairPackage a TryRepairXml nastavenými na true. Zabaľte volanie do try/catch pre WorkbookLoadException v prípade, že súbor je neobnoviteľný.

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

Krok 5: Skontrolovať diagnostiku načítania

Po načítaní skontrolujte Workbook.LoadDiagnostics, aby ste zistili, či knižnica vykonala nejaké opravy. HasRepairs je true, ak bola vykonaná nejaká oprava; HasDataLossRisk je true, ak mohli byť údaje zahodené. Prejdite Issues, aby ste získali prístup k jednotlivým DiagnosticEntry záznamom.

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

Krok 6: Prístup k údajom pracovného hárku

Po načítaní pristúpte k hárkom podľa indexu alebo názvu a prečítajte hodnoty buniek pomocou Cell.StringValue alebo 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);

Bežné problémy a riešenia

WorkbookLoadException sa vyhodí aj pri povolených možnosťach opravy.
Toto znamená, že štruktúra ZIP súboru je príliš poškodená na to, aby ju opravné algoritmy mohli obnoviť. Overte, či je súbor platným ZIP archívom (napr. vyskúšajte unzip -t file.xlsx). Ak je súbor úplne poškodený, nemôže ho otvoriť žiadna knižnica.

Načítaný zošit má menej hárkov, než sa očakávalo. Operácia opravy mohla odstrániť pracovné hárky, ktoré odkazovali na chýbajúce časti. Skontrolujte LoadDiagnostics.Issues pre položky s DataLossRisk = true a upozornite používateľa.

Hodnoty buniek sú po načítaní prázdne.
Uistite sa, že pristupujete k správnemu indexu alebo názvu hárku. Použite wb.Worksheets.Count na potvrdenie očakávaného počtu hárkov. Tiež skontrolujte, že súbor XLSX nie je chránený heslom (súbory chránené heslom momentálne nie sú podporované).

Workbook konštruktor visí pri veľkom súbore.
Konštruktor je synchronný a načíta celý súbor do pamäte. Pre veľmi veľké súbory spustite načítanie na pozadí (v samostatnom vlákne), aby zostala používateľské rozhranie responzívne.

DiagnosticEntry.Severity zobrazuje Error, ale HasRepairs je false. HasRepairs odráža, či bola oprava úspešne aplikovaná, nie či boli zistené chyby. Záznam s vážnosťou Error‑severity a s RepairApplied = false znamená, že problém bol zistený, ale nebolo ho možné opraviť — považujte to za možné varovanie o integrite dát.

Často kladené otázky

Môžem načítať súbor XLSX zo streamu namiesto cesty k súboru?

Áno. Konštruktor Workbook má preťaženia, ktoré akceptujú objekt Stream. Poskytnite svoj stream spolu s inštanciou LoadOptions, ak je potrebné načítanie s toleranciou chýb.

Podporuje knižnica načítanie súborov XLSX chránených heslom?

Súbory chránené heslom nie sú v aktuálnom rozhraní API. Pokus o načítanie takého súboru povedie k WorkbookLoadException.

Ako zistiť, ktorý hárok je aktívny v načítanom zošite?

Prečítajte Workbook.Worksheets.ActiveSheetName, aby ste získali názov hárku, ktorý bol posledne aktívny pri uložení súboru.

Môžem načítať viacero súborov XLSX súčasne?

Áno. Každá inštancia Workbook je nezávislá. Môžete vytvoriť viacero objektov Workbook na samostatných vláknach bez zdieľaného stavu.

Čo sa stane, ak je načítaná bunka s formulou a vyrovnávací výsledok chýba?

Cell.StringValue vracia prázdny reťazec. Cell.Formula stále vracia reťazec vzorca. Hodnota v medzipamäti sa naplní iba keď Excel (alebo kompatibilná aplikácia) otvorí a uloží súbor.

Pozri tiež

 Slovenčina