Kā ielādēt izklājlapu .NET
Aspose.Cells FOSS for .NET ļauj atvērt esošas XLSX izklājlapas ar vienu konstruktoru izsaukumu un nodrošina kļūdu izturīgu ielādes ceļu failiem, kuriem ir neliela struktūras bojājuma. Instalējiet bibliotēku no NuGet, izmantojot dotnet add package Aspose.Cells_FOSS.
Rokasgrāmata soli pa solim
1. solis: instalējiet pakotni
dotnet add package Aspose.Cells_FOSSPārbaudiet, vai pakotne ir pieejama:
dotnet list package | grep Aspose.Cells_FOSS2. solis: importēt nosaukumvietu
Pievienojiet šo direktīvu jūsu C# faila augšpusē:
using Aspose.Cells_FOSS;3. solis: Ielādēt XLSX failu
Padodiet faila ceļu Workbook konstruktoram. Bibliotēka nolasīs XLSX failu un aizpildīs atmiņā esošo darba grāmatas objektu.
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);4. solis: Ielādēt ar kļūdu izturīgiem labošanas variantiem
Failiem, kuri var būt bojāti ZIP vai XML, nodrošiniet LoadOptions objektu ar TryRepairPackage un TryRepairXml, kas iestatīti uz true. Iesaiņojiet izsaukumu try/catch, lai WorkbookLoadException, ja fails nav atgūstams.
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);
}Solis 5: Pārbaudīt ielādes diagnostiku
Pēc ielādes pārbaudiet Workbook.LoadDiagnostics, lai redzētu, vai bibliotēka veica kādus remontus. HasRepairs ir true, ja tika veikts kāds remonts; HasDataLossRisk ir true, ja dati varētu būt izdzēsti. Iterējiet Issues, lai piekļūtu atsevišķiem DiagnosticEntry ierakstiem.
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.");
}6. solis: Piekļūt darblapas datiem
Pēc ielādēšanas piekļūstiet darblapām pēc indeksa vai nosaukuma, un nolasiet šūnu vērtības, izmantojot Cell.StringValue vai 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);Bieži sastopamās problēmas un risinājumi
WorkbookLoadException tiek izsviests pat ar ieslēgtām labošanas opcijām.
Tas nozīmē, ka faila ZIP struktūra ir pārāk bojāta, lai labošanas algoritmi varētu to atgūt. Pārbaudiet, vai fails ir derīgs ZIP arhīvs (piem., mēģiniet unzip -t file.xlsx). Ja fails ir pilnīgi bojāts, to nevar atvērt ar nevienu bibliotēku.
Ielādētajai darba grāmatai ir mazāk loksnes nekā gaidīts.
Remonta darbība var būt izņēmis darblapas, kas atsaucas uz trūkstošām daļām. Pārbaudiet LoadDiagnostics.Issues ierakstus ar DataLossRisk = true un informējiet lietotāju.
Šūnu vērtības ir tukšas pēc ielādes.
Pārliecinieties, ka piekļūstat pareizajam darblapas indeksam vai nosaukumam. Izmantojiet wb.Worksheets.Count, lai apstiprinātu gaidāmo lapu skaitu. Arī pārbaudiet, vai XLSX fails nav aizsargāts ar paroli (parolēm aizsargāti faili pašlaik netiek atbalstīti).
Workbook konstruktoram pakļaujas pie liela faila.
Konstruktors ir sinhrons un ielādē visu failu atmiņā. Ļoti lieliem failiem ielādi izpildiet fona pavedienā, lai UI būtu reaģējošs.
DiagnosticEntry.Severity rāda Error, bet HasRepairs ir false.HasRepairs atspoguļo, vai labojums tika veiksmīgi piemērots, nevis vai tika konstatētas kļūdas. Ieraksts ar Error‑smagumu un RepairApplied = false nozīmē, ka problēma tika konstatēta, bet to nevarēja labot — uzskatiet to par iespējamību datu integritātes brīdinājumu.
Biežāk uzdotie jautājumi
Vai varu ielādēt XLSX failu no straumes, nevis no faila ceļa?
Jā. Workbook konstruktoram ir pārlādējumi, kas pieņem Stream objektu. Pārsūtiet savu straumi kopā ar LoadOptions instanci, ja ir nepieciešama kļūdu izturīga ielāde.
Vai bibliotēka atbalsta paroles aizsargātu XLSX failu ielādi?
Paroles aizsargāti faili nav pašreizējā API virsmā. Mēģinājums ielādēt tādu izraisīs WorkbookLoadException.
Kā pārbaudīt, kurš loks ir aktīvs ielādētajā darba grāmatā?
Lasiet Workbook.Worksheets.ActiveSheetName, lai iegūtu darblapas nosaukumu, kas bija pēdējā aktīvā, kad fails tika saglabāts.
Vai es varu vienlaicīgi ielādēt vairākus XLSX failus?
Jā. Katrs Workbook instances ir neatkarīgs. Jūs varat izveidot vairākus Workbook objektus atsevišķos pavedienos bez koplietotas stāvokļa.
Kas notiek, ja formula šūna tiek ielādēta, bet kešētais rezultāts nav pieejams?
Cell.StringValue atgriež tukšu virkni. Cell.Formula joprojām atgriež formulas virkni. Kešatmiņas vērtība tiek aizpildīta tikai tad, kad Excel (vai saderīga lietojumprogramma) atver un saglabā failu.