Πώς να φορτώσετε ένα πλάνο σε .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.
Βήμα προς βήμα οδηγός
Βήμα 1: Εγκατάσταση του πακέτου
dotnet add package Aspose.Cells_FOSSΕλέγξτε το πακέτο είναι παρόν:
dotnet list package | grep Aspose.Cells_FOSSΒήμα 2: Εισαγωγή του ονόματος
Προσθέστε αυτή την οδηγία στην κορυφή του αρχείου C# σας:
using Aspose.Cells_FOSS;Βήμα 3: Κατεβάστε ένα αρχείο XLSX
Μεταβείτε το αρχείο στο δρόμο της Workbook Η βιβλιοθήκη διαβάζει το αρχείο XLSX και λαμβάνει το αντικείμενο του εργαστηρίου στη μνήμη.
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: Κατεβάστε με επιλογές επισκευής ανεκτικότητας σφάλματος
Για αρχεία που μπορεί να έχουν διαφθορά ZIP ή XML, προσφέρετε ένα LoadOptions αντικείμενο με TryRepairPackage και TryRepairXml ΣΕΤΙΔΑ ΓΙΑ true.Κάντε το κλήμα σε ένα try/catch Για WorkbookLoadException Σε περίπτωση που το αρχείο δεν είναι ανακτήσιμο.
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);
}Βήμα 5: Ελέγξτε τη διάγνωση φορτίου
Μετά την αναρρίχηση, ελέγξτε Workbook.LoadDiagnostics Για να δούμε αν η βιβλιοθήκη έχει κάνει κάποια επισκευή. HasRepairs Είναι true εάν έχει γίνει επισκευή,; HasDataLossRisk Είναι true Αν τα δεδομένα μπορεί να έχουν διαγραφεί.Iterate Issues Η πρόσβαση σε ατομικά DiagnosticEntry Τα αρχεία.
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: Πρόσβαση σε δεδομένα φύλλου εργασίας
Μετά την φόρτιση, μπορείτε να έχετε πρόσβαση σε φύλλα εργασίας με δείκτη ή όνομα και να διαβάσετε τις τιμές κυττάρων χρησιμοποιώντας Cell.StringValue ή 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);Κοινά προβλήματα και τακτοποιήσεις
WorkbookLoadException Ακόμα και με τις επιλογές επισκευής. Αυτό σημαίνει ότι η δομή του ZIP του αρχείου είναι πολύ κατεστραμμένη για την επισκευή αλγόριθμων. επαληθεύστε το αρχείο είναι ένα έγκυρο αρχεία Zip (π.χ. προσπαθήστε να unzip -t file.xlsxΑν το αρχείο είναι εντελώς διαφθορά, δεν μπορεί να ανοίξει από οποιαδήποτε βιβλιοθήκη.
Το φορτισμένο βιβλίο εργασίας έχει λιγότερα φύλλα από ό, τι αναμένεται. Μια επιδιόρθωση μπορεί να έχει χαθεί φύλλα εργασίας που αναφέρονται λείπουν μέρη. LoadDiagnostics.Issues Για τις εισαγωγές με DataLossRisk = true και να ειδοποιήσει τον χρήστη.
Οι τιμές κυττάρων είναι κενές μετά από φόρτιση. Βεβαιωθείτε ότι έχετε πρόσβαση στον σωστό δείκτη εργασίας ή το όνομα. wb.Worksheets.Count Επίσης, ελέγξτε ότι το αρχείο XLSX δεν προστατεύεται με κωδικό πρόσβασης (τα αρχεία που προστατευτούν με password δεν υποστηρίζονται επί του παρόντος).
Workbook Ο κατασκευαστής κρεμάται σε ένα μεγάλο αρχείο. Ο κατασκευαστής είναι συγχρονισμένος και φορτώνει ολόκληρο το αρχείο στη μνήμη. Για πολύ μεγάλα αρχεία, εκτελέστε τη φόρτωση σε ένα φόντο για να κρατήσει το UI ανταποκρινόμενο.
DiagnosticEntry.Severity ΔΕΙΧΝΗΣΕΙΣ Error Αλλά HasRepairs Είναι false. HasRepairs αντικατοπτρίζει αν μια επισκευή εφαρμόστηκε με επιτυχία, όχι εάν εντοπιστούν σφάλματα. Error-Εισαγωγή με την ασφάλεια RepairApplied = false σημαίνει ότι το πρόβλημα εντοπίστηκε αλλά δεν μπορούσε να διορθωθεί - αντιμετωπίζει αυτό ως πιθανή προειδοποίηση για την ακεραιότητα των δεδομένων.
Συχνές ερωτήσεις
Μπορώ να φορτώ ένα αρχείο XLSX από μια ροή αντί για έναν δρομολόγιο αρχείων;?
Ναι, το Workbook Ο κατασκευαστής έχει υπερφόρτωση που δέχεται ένα Stream Περνάτε το ρεύμα σας δίπλα σε ένα LoadOptions Εάν χρειαστείται ανεκτικότητα σε φορτίο.
Η βιβλιοθήκη υποστηρίζει την φόρτωση αρχείων XLSX με προστασία κωδικού πρόσβασης;?
Τα αρχεία που προστατεύονται από κωδικό πρόσβασης δεν βρίσκονται στην τρέχουσα επιφάνεια API. Προσπαθώντας να φορτώσετε ένα θα οδηγήσει σε μια WorkbookLoadException.
Πώς μπορώ να ελέγξω ποια φύλλα είναι ενεργή στο φορτισμένο βιβλίο εργασίας;?
Διαβάστε Workbook.Worksheets.ActiveSheetName να πάρει το όνομα του φύλλου που ήταν τελευταία ενεργό όταν το αρχείο αποθηκεύτηκε.
Μπορώ να φορτώ πολλά αρχεία XLSX ταυτόχρονα;?
Ναι, κάθε ένα Workbook Η διαδικασία είναι ανεξάρτητη. μπορείτε να κάνετε πολλές Workbook αντικείμενα σε ξεχωριστές γραμμές χωρίς κοινή κατάσταση.
Τι συμβαίνει αν ένα κύτταρο φόρμουλα φορτίζεται και το κρυμμένο αποτέλεσμα απουσιάζει;?
Cell.StringValue Επιστρέφει μια κενή γραμμή. Cell.Formula Η κρυμμένη τιμή κατοικείται μόνο όταν το Excel (ή μια συμβατή εφαρμογή) ανοίγει και αποθηκεύει το αρχείο.