Kuinka ladata taulukkolaskentaohjelma .NETissä

Kuinka ladata taulukkolaskentaohjelma .NETissä

Aspose.Cells FOSS for .NET antaa sinun avata olemassa olevia XLSX-taulukoita yhdellä konstruktorikutsulla ja tarjoaa vikakestävän latauspolun tiedostoille, joissa on pieniä rakenteellisia korruptioita. Asenna kirjasto NuGetista käyttäen dotnet add package Aspose.Cells_FOSS.

Vaiheittainen opas

Vaihe 1: Asenna paketti

dotnet add package Aspose.Cells_FOSS

Vahvista, että paketti on läsnä:

dotnet list package | grep Aspose.Cells_FOSS

Vaihe 2: Tuo nimiavaruus

Lisää tämä direktiivi C#‑tiedostosi alkuun:

using Aspose.Cells_FOSS;

Vaihe 3: Lataa XLSX‑tiedosto

Anna tiedostopolku Workbook-konstruktorille. Kirjasto lukee XLSX‑tiedoston ja täyttää muistin sisäisen työkirja‑objektin.

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

Vaihe 4: Lataa vikasietoisilla korjausvaihtoehdoilla

Tiedostoille, joilla voi olla ZIP- tai XML-virhe, toimita LoadOptions-objekti, jossa TryRepairPackage ja TryRepairXml on asetettu true. Kääri kutsu try/catch:n sisään WorkbookLoadException:ta varten, jos tiedosto on palautumaton.

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

Vaihe 5: Tarkista latausdiagnostiikka

Kun lataus on suoritettu, tarkista Workbook.LoadDiagnostics nähdäksesi, onko kirjasto tehnyt korjauksia. HasRepairs on true jos korjaus on tehty; HasDataLossRisk on true jos data on mahdollisesti hylätty. Iteroi Issues päästäksesi yksittäisiin DiagnosticEntry-tietueisiin.

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

Vaihe 6: Työkirjan tietojen käyttö

Lataamisen jälkeen pääset taulukoihin indeksin tai nimen perusteella ja luet soluarvot käyttäen Cell.StringValue tai 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);

Yleisiä ongelmia ja korjauksia

WorkbookLoadException heitetään, vaikka korjausvaihtoehdot on otettu käyttöön.
Tämä tarkoittaa, että tiedoston ZIP-rakenne on liian vahingoittunut, jotta korjausalgoritmit pystyisivät palauttamaan sen. Varmista, että tiedosto on kelvollinen ZIP-arkisto (esim. kokeile unzip -t file.xlsx). Jos tiedosto on täysin korruptoitunut, mitään kirjastoa ei voida käyttää sen avaamiseen.

Ladattu työkirja sisältää vähemmän taulukoita kuin odotettiin.
Korjaustoiminto on saattanut poistaa työkirjoja, jotka viittasivat puuttuviin osiin. Tarkista LoadDiagnostics.Issues merkinnöistä, joissa on DataLossRisk = true, ja ilmoita käyttäjälle.

Soluarvot ovat tyhjiä latauksen jälkeen.
Varmista, että käytät oikeaa laskentataulukon indeksiä tai nimeä. Käytä wb.Worksheets.Count vahvistaaksesi odotetun taulukoiden määrän. Tarkista myös, että XLSX‑tiedosto ei ole salasanalla suojattu (salasanalla suojattuja tiedostoja ei tällä hetkellä tueta).

Workbook konstruktori jumiutuu suurella tiedostolla.
Konstruktori on synkroninen ja lataa koko tiedoston muistiin. Erittäin suurilla tiedostoilla suorita lataus taustasäikeessä, jotta käyttöliittymä pysyy reagoivana.

DiagnosticEntry.Severity näyttää Error, mutta HasRepairs on false. HasRepairs heijastaa, onko korjaus onnistuneesti toteutettu, eikä sitä, onko virheitä havaittu. Error-vakavuusmerkintä, jossa on RepairApplied = false, tarkoittaa, että ongelma havaittiin, mutta sitä ei voitu korjata — käsittele tämä mahdollisena tietojen eheyden varoituksena.

Usein kysytyt kysymykset

Voinko ladata XLSX-tiedoston Streamistä tiedostopolun sijaan?

Kyllä. Workbook-konstruktori sisältää ylikuormituksia, jotka hyväksyvät Stream-objektin. Anna virtaasi yhdessä LoadOptions-instanssin kanssa, jos tarvitaan vikakestävää latausta.

Tukiko kirjasto salasanasuojattujen XLSX‑tiedostojen lataamista?

Salasanasuojatut tiedostot eivät ole nykyisessä API-rajapinnassa. Yrittäessä ladata sellainen, syntyy WorkbookLoadException.

Miten tarkistan, mikä arkki on aktiivinen ladatussa työkirjassa?

Lue Workbook.Worksheets.ActiveSheetName saadaksesi tiedoston tallennuksen yhteydessä viimeksi aktiivisena ollut taulukon nimen.

Voinko ladata useita XLSX-tiedostoja samanaikaisesti?

Kyllä. Jokainen Workbook-instanssi on itsenäinen. Voit luoda useita Workbook-objekteja erillisillä säikeillä ilman jaettua tilaa.

Mitä tapahtuu, jos kaavasolun lataus tapahtuu ja välimuistissa oleva tulos puuttuu?

Cell.StringValue palauttaa tyhjän merkkijonon. Cell.Formula palauttaa edelleen kaavan merkkijonon. Välimuistissa oleva arvo täytetään vain, kun Excel (tai yhteensopiva sovellus) avaa ja tallentaa tiedoston.

Katso myös

 Suomi