Aspose.Cells Spreadsheet Locker για .NET
Aspose.Cells Spreadsheet Locker for .NET allows developers to programmatically lock Excel workbooks and protect worksheets, ranges, and overall document structures with user-defined passwords and granular permission settings. Whether you want to prevent unauthorized edits, enforce workbook-level encryption, or restrict access to specific sheet regions, this plugin delivers streamlined protection for XLS, XLSX, XLTM, and XLSM αρχεία.
Εγκατάσταση και Ρύθμιση
Για να προσθέσετε το Aspose.Cells Spreadsheet Locker for .NET στο έργο σας:
- Εγκαταστήστε το πακέτο NuGet. Δείτε το Εγκατάσταση οδηγό για λεπτομέρειες.
- Διαμορφώστε την μετρημένη άδεια πριν χρησιμοποιήσετε κλήσεις API για να αποφύγετε τη λειτουργία αξιολόγησης. Ανατρέξτε στο Μετρημένη Άδεια τεκμηρίωση.
Χαρακτηριστικά και Λειτουργίες
Υποστηριζόμενες μορφές αρχείων:
Εφαρμόζει προστασία σε κύριες μορφές Excel, συμπεριλαμβανομένων των παλαιών BIFF (XLS) και σύγχρονο Άνοιγμα XML (XLSX, XLSM, XLTM). Οι ρυθμίσεις προστασίας παραμένουν αμετάβλητες κατά τις μετατροπές μορφής.
Κρυπτογράφηση σε Επίπεδο Βιβλίου Εργασίας
Εφαρμόστε έναν κωδικό πρόσβασης για να κρυπτογραφήσετε ολόκληρο το ρεύμα του βιβλίου εργασίας. Αυτό χρησιμοποιεί την τυπική κρυπτογράφηση του Office, ώστε το αρχείο να μην μπορεί να ανοιχθεί χωρίς τον σωστό κωδικό. Υποστηρίζονται πολλαπλοί αλγόριθμοι κρυπτογράφησης για συμβατότητα και ασφάλεια.
Επεξεργασία Βάσει Ροής
- Υποστήριξη Ροής Μνήμης: Κλείδωμα αρχείων απευθείας στη μνήμη χωρίς I/O δίσκου.
- Μηδενική Πρόσβαση στο Σύστημα Αρχείων: Πλήρης ροή εργασίας προστασίας χρησιμοποιώντας ροές.
- Ενσωμάτωση Web: Επεξεργασία ανεβασμένων αρχείων και άμεση επιστροφή προστατευμένων εκδόσεων.
- Επικύρωση στη μνήμη: Επαληθεύστε την προστασία κωδικού πρόσβασης αμέσως μετά την εφαρμογή.
Επαλήθευση και επικύρωση κωδικού
- Ενσωματωμένη δοκιμή κωδικού πρόσβασης: Επαληθεύστε ότι η προστασία εφαρμόστηκε σωστά.
- Επικύρωση βάσει Εξαίρεσης: Επιβεβαίωση ότι τα αρχεία δεν μπορούν να ανοιχτούν χωρίς το σωστό κωδικό πρόσβασης.
- Προγραμματιστικοί Έλεγχοι: Χρησιμοποιήστε
FileFormatUtil.VerifyPassword()για την επικύρωση κωδικού πρόσβασης. - Δοκιμές Ασφάλειας: Διασφαλίστε ότι οι μηχανισμοί προστασίας λειτουργούν όπως αναμένεται.
Προστασία Φύλλου Εργασίας
Περιορίστε την επεξεργασία σε επίπεδο φύλλου με επιλογές όπως:
- Κλείδωμα περιεχομένου κελιών
- Πρόληψη εισαγωγών/διαγραφών γραμμών ή στηλών
- Απενεργοποίηση ταξινόμησης, φιλτραρίσματος ή επεξεργασίας συγκεντρωτικών πινάκων
Προστασία Επίπεδου Εύρους
Ορίστε επεξεργάσιμα εύρη ενώ διατηρείτε τις φόρμουλες ή τα ευαίσθητα δεδομένα κλειδωμένα. Αναθέστε διαφορετικούς κωδικούς πρόσβασης ανά εύρος για να παρέχετε περιορισμένη πρόσβαση σε συγκεκριμένες ομάδες χρηστών.
Προστασία Δομής και Παραθύρου
Αποτρέψτε αλλαγές σε όλο το βιβλίο εργασίας, όπως προσθήκη, μετονομασία ή διαγραφή φύλλων εργασίας. Κλειδώστε τις ρυθμίσεις παραθύρου, όπως παγωμένα πλαίσια ή επίπεδα ζουμ, ώστε η προβολή του χρήστη να παραμένει συνεπής.
Αλγόριθμοι Κρυπτογράφησης και Ισχύς
Επιλέξτε μεταξύ AES-256 για υψηλή ασφάλεια ή του παλαιού RC4 για συμβατότητα. Η επιλογή αλγορίθμου εκτίθεται μέσω απλών ρυθμίσεων API.
Εξαιρέσεις Προστασίας και Δικαιώματα
Ρυθμίστε λεπτομερώς τα δικαιώματα επιτρέποντας ορισμένες ενέργειες (π.χ., μορφοποίηση κελιών ή ταξινόμηση) ενώ διατηρείτε άλλες λειτουργίες κλειδωμένες.
Διαχείριση Κλειδώματος και Αφαίρεση
Ξεκλειδώστε φύλλα, περιοχές ή ολόκληρα βιβλία εργασίας προγραμματιστικά με τον σωστό κωδικό πρόσβασης. Τα API αντικατοπτρίζουν τη διαδικασία κλειδώματος και η κατάσταση προστασίας μπορεί να ερωτηθεί κατά την εκτέλεση.
Παραδείγματα Χρήσης
Βασική Προστασία Βιβλίου Εργασίας με LowCode API
Ο πιο απλός τρόπος για να προστατέψετε ένα αρχείο Excel με κωδικό πρόσβασης:
using Aspose.Cells.LowCode;
using Aspose.Cells;
string src = "template.xlsx";
LowCodeLoadOptions lclopts = new LowCodeLoadOptions();
lclopts.InputFile = src;
LowCodeSaveOptions lcsopts = new LowCodeSaveOptions();
lcsopts.SaveFormat = SaveFormat.Xlsx;
lcsopts.OutputFile = "protected.xlsx";
SpreadsheetLocker.Process(lclopts, lcsopts, "123", null);Προχωρημένο: Προστασία βάσει ροής με επικύρωση
Επεξεργαστείτε τα αρχεία εξ ολοκλήρου στη μνήμη και επαληθεύστε ότι η προστασία εφαρμόστηκε σωστά:
using Aspose.Cells.LowCode;
using Aspose.Cells;
using System.IO;
string src = "template.xlsx";
// Configure load options
LowCodeLoadOptions lclopts = new LowCodeLoadOptions();
lclopts.InputFile = src;
// Configure save options
LowCodeSaveOptions lcsopts = new LowCodeSaveOptions();
lcsopts.SaveFormat = SaveFormat.Xlsx;
// Output to memory stream
MemoryStream ms = new MemoryStream();
lcsopts.OutputStream = ms;
// Apply password protection (password: "123", unprotect password: null)
SpreadsheetLocker.Process(lclopts, lcsopts, "123", null);
// Reset stream position for reading
ms.Seek(0, SeekOrigin.Begin);
// Verify password is correct
FileFormatUtil.VerifyPassword(ms, "123");
// Test that file is actually locked (should fail without password)
ms.Seek(0, SeekOrigin.Begin);
bool fail = false;
try
{
new Workbook(ms);
fail = true; // Should not reach here
}
catch (CellsException e)
{
if (ExceptionType.IncorrectPassword != e.Code)
{
Console.WriteLine("Exception: " + e.Message);
}
else
{
Console.WriteLine("✓ File is properly locked (cannot open without password)");
}
}
if (fail)
{
Console.WriteLine("✗ The resultant file should be locked with password but is not");
}
// Open with correct password (should succeed)
ms.Seek(0, SeekOrigin.Begin);
Workbook protectedWorkbook = new Workbook(ms, new LoadOptions() { Password = "123" });
Console.WriteLine("✓ File opened successfully with correct password");Ανάλυση Χαρακτηριστικών: Παράμετροι Προστασίας Κωδικού Πρόσβασης
Το SpreadsheetLocker.Process() η μέθοδος δέχεται τέσσερις παραμέτρους:
SpreadsheetLocker.Process(
loadOptions, // Load configuration
saveOptions, // Save configuration and output destination
"protect123", // Password to protect the workbook
null // Unprotect password (optional, for removing existing protection)
);Λεπτομέρειες Παραμέτρων:
- Επιλογές Φόρτωσης: Διαμορφώνει τη θέση του αρχείου εισόδου και τη συμπεριφορά φόρτωσης
- Επιλογές Αποθήκευσης: Διαμορφώνει τη μορφή εξόδου, τον προορισμό (αρχείο ή ροή)
- Κωδικός Προστασίας: Κωδικός πρόσβασης απαιτείται για το άνοιγμα του workbook
- Κωδικός Αποπροστασίας: Κωδικός πρόσβασης για την αφαίρεση υπάρχουσας προστασίας (χρησιμοποιήστε
nullαν δεν χρειάζεται)
Ανάλυση Χαρακτηριστικών: Επαλήθευση Κωδικού Πρόσβασης
Επικυρώστε ότι η προστασία εφαρμόστηκε επιτυχώς:
// Method 1: Use FileFormatUtil.VerifyPassword()
ms.Seek(0, SeekOrigin.Begin);
bool isValid = FileFormatUtil.VerifyPassword(ms, "123");
Console.WriteLine($"Password verification: {isValid}");
// Method 2: Try opening without password (should fail)
ms.Seek(0, SeekOrigin.Begin);
try
{
new Workbook(ms);
Console.WriteLine("✗ File is not properly protected");
}
catch (CellsException e)
{
if (e.Code == ExceptionType.IncorrectPassword)
{
Console.WriteLine("✓ File is properly protected");
}
}
// Method 3: Open with correct password (should succeed)
ms.Seek(0, SeekOrigin.Begin);
Workbook wb = new Workbook(ms, new LoadOptions() { Password = "123" });
Console.WriteLine("✓ Correct password works");Ανάλυση Χαρακτηριστικών: Διαχείριση Θέσης Ροής
Όταν εργάζεστε με ροές, η σωστή τοποθέτηση είναι κρίσιμη:
// After writing to stream
SpreadsheetLocker.Process(lclopts, lcsopts, "123", null);
// MUST reset position before reading
ms.Seek(0, SeekOrigin.Begin); // Move to start of stream
// Now can read/verify
FileFormatUtil.VerifyPassword(ms, "123");
// Reset again for next operation
ms.Seek(0, SeekOrigin.Begin);
new Workbook(ms, new LoadOptions() { Password = "123" });Καλές πρακτικές θέσης ροής:
- Πάντα
Seek(0, SeekOrigin.Begin)πριν διαβάσετε από μια ροή που μόλις γράψατε - Επαναφέστε τη θέση μεταξύ πολλαπλών λειτουργιών ανάγνωσης
- Χρησιμοποιήστε
SeekOrigin.Begin(όχιCurrentήEnd) για συνέπεια
Ανάλυση χαρακτηριστικού: Διαχείριση εξαιρέσεων για προστασία
Διαχειριστείτε διαφορετικά σενάρια σφαλμάτων όταν εργάζεστε με προστατευμένα αρχεία:
ms.Seek(0, SeekOrigin.Begin);
try
{
// Try to open without password
Workbook wb = new Workbook(ms);
Console.WriteLine("Warning: File opened without password!");
}
catch (CellsException e)
{
switch (e.Code)
{
case ExceptionType.IncorrectPassword:
Console.WriteLine("✓ Password protection is active");
break;
case ExceptionType.InvalidFileFormat:
Console.WriteLine("✗ File format is corrupted");
break;
case ExceptionType.FileCorrupted:
Console.WriteLine("✗ File is corrupted");
break;
default:
Console.WriteLine($"✗ Unexpected error: {e.Message}");
break;
}
}Παραδοσιακό API: Λεπτομερής έλεγχος προστασίας
Για λεπτομερή σενάρια προστασίας, χρησιμοποιήστε το παραδοσιακό API Workbook:
using Aspose.Cells;
// Load a workbook
Workbook workbook = new Workbook("Workbook.xlsx");
// Protect the entire workbook with a password
workbook.Protect(ProtectionType.All, "password123");
// Protect a specific worksheet
Worksheet sheet = workbook.Worksheets[0];
sheet.Protect(ProtectionType.All, "sheetPass", null);
// Protect workbook structure
workbook.Settings.WriteProtection.Password = "structurePass";
// Save the protected file
workbook.Save("LockedWorkbook.xlsx");Παράδειγμα ενσωμάτωσης Web API
Προστασία των ανεβασμένων αρχείων Excel σε μια εφαρμογή ASP.NET Core:
using Aspose.Cells;
using Aspose.Cells.LowCode;
using System.IO;
public class AdvancedProtectionService
{
public void ApplyMultiLevelProtection(string inputPath, string outputPath,
string filePassword, string sheetPassword)
{
// Protect the file with Spreadsheet Locker
LowCodeLoadOptions loadOptions = new LowCodeLoadOptions { InputFile = inputPath };
// Use memory stream for intermediate processing
using (MemoryStream ms = new MemoryStream())
{
LowCodeSaveOptions saveOptions = new LowCodeSaveOptions
{
SaveFormat = SaveFormat.Xlsx,
OutputStream = ms
};
// Apply file-level protection
SpreadsheetLocker.Process(loadOptions, saveOptions, filePassword, null);
// Now apply worksheet-level protection
ms.Position = 0;
LoadOptions wbLoadOptions = new LoadOptions { Password = filePassword };
Workbook workbook = new Workbook(ms, wbLoadOptions);
// Protect all worksheets
foreach (Worksheet worksheet in workbook.Worksheets)
{
// Configure protection options as needed
ProtectionType protectionType = ProtectionType.All;
protectionType ^= ProtectionType.Objects;
protectionType ^= ProtectionType.Scenarios;
// Apply sheet-level protection
worksheet.Protect(protectionType, sheetPassword, null);
}
// Save the document with both levels of protection
workbook.Save(outputPath);
}
}
}Ομαδική προστασία με επικύρωση
Προστασία πολλαπλών αρχείων και επαλήθευση του καθενός:
string[] files = Directory.GetFiles("input", "*.xlsx");
string password = "SecurePass123!";
foreach (string file in files)
{
try
{
LowCodeLoadOptions loadOpts = new LowCodeLoadOptions();
loadOpts.InputFile = file;
LowCodeSaveOptions saveOpts = new LowCodeSaveOptions();
saveOpts.SaveFormat = SaveFormat.Xlsx;
MemoryStream ms = new MemoryStream();
saveOpts.OutputStream = ms;
// Apply protection
SpreadsheetLocker.Process(loadOpts, saveOpts, password, null);
// Verify protection
ms.Seek(0, SeekOrigin.Begin);
bool isProtected = false;
try
{
new Workbook(ms); // Should fail
}
catch (CellsException e)
{
if (e.Code == ExceptionType.IncorrectPassword)
{
isProtected = true;
}
}
if (isProtected)
{
// Save to output directory
string outputFile = Path.Combine("output",
Path.GetFileNameWithoutExtension(file) + "_protected.xlsx");
File.WriteAllBytes(outputFile, ms.ToArray());
Console.WriteLine($"✓ Protected: {Path.GetFileName(file)}");
}
else
{
Console.WriteLine($"✗ Failed to protect: {Path.GetFileName(file)}");
}
}
catch (Exception ex)
{
Console.WriteLine($"✗ Error processing {file}: {ex.Message}");
}
}Αφαίρεση Προστασίας
Ξεκλείδωμα προστατευμένων βιβλίων εργασίας προγραμματιστικά:
LowCodeLoadOptions loadOpts = new LowCodeLoadOptions();
loadOpts.InputFile = "protected.xlsx";
loadOpts.Password = "123"; // Original password
LowCodeSaveOptions saveOpts = new LowCodeSaveOptions();
saveOpts.SaveFormat = SaveFormat.Xlsx;
saveOpts.OutputFile = "unprotected.xlsx";
// Pass empty string or null for both passwords to remove protection
SpreadsheetLocker.Process(loadOpts, saveOpts, "", "");Συμβουλές και Καλές Πρακτικές
Καλύτερες Πρακτικές Ασφάλειας
- Ισχυροί Κωδικοί Πρόσβασης: Χρησιμοποιήστε μακροσκελείς, σύνθετους κωδικούς πρόσβασης με AES-256 για ευαίσθητα αρχεία.
- Ανανέωση Κωδικού Πρόσβασης: Ανανεώνετε τους κωδικούς πρόσβασης τακτικά σύμφωνα με τις πολιτικές ασφαλείας.
- Επικύρωση: Πάντα επαληθεύστε ότι η προστασία εφαρμόστηκε χρησιμοποιώντας
FileFormatUtil.VerifyPassword()ή δοκιμή εξαιρέσεων. - Δοκιμή: Δοκιμάστε ότι τα αρχεία δεν μπορούν να ανοιχτούν χωρίς τον σωστό κωδικό πρόσβασης.
Διαχείριση Ροής
- Επαναφορά Θέσης: Πάντα καλέστε
ms.Seek(0, SeekOrigin.Begin)πριν διαβάσετε από μια ροή που γράψατε. - Απόρριψη: Απορρίψτε τις ροές άμεσα για να ελευθερώσετε μνήμη.
- Επαναχρησιμοποίηση: Επαναρυθμίστε και επαναχρησιμοποιήστε τις ροές για επεξεργασία παρτίδας ώστε να μειώσετε την πίεση στη μνήμη.
Βελτιστοποίηση Απόδοσης
- LowCode API: Χρησιμοποιήστε
SpreadsheetLocker.Process()για βελτιστοποιημένη απόδοση. - Μαζική Επεξεργασία: Επεξεργασία πολλαπλών αρχείων παράλληλα για σενάρια υψηλής απόδοσης.
- Ροές Μνήμης: Χρησιμοποιήστε ροές για εφαρμογές web ώστε να αποφύγετε το κόστος I/O του δίσκου.
Στρατηγικές Προστασίας
- Πολυεπίπεδη Προστασία: Συνδυάστε τις προστασίες φύλλου εργασίας και περιοχής με κωδικούς πρόσβασης σε επίπεδο βιβλίου εργασίας.
- Αποθήκευση Μεταδεδομένων: Διατηρήστε τις ρυθμίσεις προστασίας στη διαμόρφωση για εργασίες αυτοματοποίησης.
- Διατήρηση Μορφής: Εφαρμόστε ξανά την προστασία μετά τις μετατροπές μορφής για να διασφαλίσετε την ακεραιότητα της κρυπτογράφησης.
- Έλεγχοι Δικαιωμάτων: Χρησιμοποιήστε
IsProtectedέλεγχους πριν την εκτέλεση λειτουργιών για να αποφύγετε εξαιρέσεις.
Ανάπτυξη Παραγωγής
- Αρχικοποίηση Μία Φορά: Αρχικοποίηση αδειοδότησης κατά την εκκίνηση για αποφυγή προειδοποιήσεων αξιολόγησης.
- Διαχείριση Σφαλμάτων: Υλοποίηση ολοκληρωμένης διαχείρισης εξαιρέσεων για
CellsExceptionτύποι. - Καταγραφή: Καταγράψτε τις λειτουργίες προστασίας και τα αποτελέσματα επικύρωσης για τα αρχεία ελέγχου.
- Καθαρισμός: Διαγράψτε τα προσωρινά αρχεία μετά την επεξεργασία σε διαδικτυακές εφαρμογές.
Κοινά Προβλήματα και Λύσεις
| Ζήτημα | Επίλυση |
|---|---|
| Το αρχείο δεν είναι σωστά προστατευμένο | Επαληθεύστε ότι ο κωδικός πρόσβασης δεν είναι κενή συμβολοσειρά· ελέγξτε FileFormatUtil.VerifyPassword() αποτέλεσμα |
| Δεν μπορεί να ανοίξει το προστατευμένο αρχείο | Βεβαιωθείτε ότι χρησιμοποιείτε LoadOptions με σωστό Password ιδιότητα |
| Αποτυχία ανάγνωσης ροής | Κλήση ms.Seek(0, SeekOrigin.Begin) για επαναφορά της θέσης της ροής πριν από την ανάγνωση |
| Exception: IncorrectPassword | Αυτό είναι αναμενόμενο κατά τη δοκιμή προστασίας· πιάστε το και διαχειριστείτε το ExceptionType.IncorrectPassword |
| Η ροή μνήμης είναι κενή | Βεβαιωθείτε SpreadsheetLocker.Process() ολοκληρώθηκε επιτυχώς πριν από την ανάγνωση της ροής |
| Το αρχείο ανοίγει χωρίς κωδικό πρόσβασης | Ελέγξτε ότι η προστασία εφαρμόστηκε· ίσως χρειαστεί να χρησιμοποιήσετε το παραδοσιακό API για συγκεκριμένους τύπους προστασίας |
| Αδυναμία επαλήθευσης κωδικού πρόσβασης | Η θέση της ροής μπορεί να είναι στο τέλος· επαναφέρετε τη με Seek(0, SeekOrigin.Begin) |
| Workbook.Protect() not working | Το LowCode API χρησιμοποιεί διαφορετικό μηχανισμό προστασίας· χρησιμοποιήστε το κατάλληλο API για τις ανάγκες σας |
Συχνές Ερωτήσεις
Τι είναι το Aspose.Cells Spreadsheet Locker για .NET;? Ένα εξειδικευμένο εργαλείο για την εφαρμογή προστασίας με κωδικό πρόσβασης και κρυπτογράφησης σε βιβλία εργασίας Excel προγραμματιστικά σε εφαρμογές .NET.
Πώς διαφέρει από το Aspose.Cells για .NET;? Aspose.Cells for .NET is a comprehensive library. The Spreadsheet Locker provides streamlined APIs focused specifically on protection and encryption workflows.
Τι τύποι προστασίας υποστηρίζονται;? Κρυπτογράφηση σε επίπεδο βιβλίου εργασίας (απαιτεί κωδικό πρόσβασης για άνοιγμα), προστασία φύλλου εργασίας, προστασία περιοχής και προστασία δομής.
Μπορώ να προστατεύσω αρχεία στη μνήμη χωρίς να τα αποθηκεύσω στο δίσκο;? Ναι! Χρησιμοποιήστε MemoryStream με LowCodeSaveOptions.OutputStream για πλήρη επεξεργασία στη μνήμη.
Πώς μπορώ να επαληθεύσω ότι η προστασία εφαρμόστηκε σωστά;? Χρησιμοποιήστε FileFormatUtil.VerifyPassword() ή δοκιμάστε να ανοίξετε το αρχείο χωρίς κωδικό (πρέπει να ρίξει IncorrectPassword εξαίρεση).
Τι σημαίνουν οι τέσσερις παράμετροι της SpreadsheetLocker.Process();?
- Επιλογές φόρτωσης (διαμόρφωση εισόδου)
- Επιλογές αποθήκευσης (διαμόρφωση εξόδου)
- Κωδικός προστασίας (για κλείδωμα του αρχείου)
- Κωδικός αποπροστασίας (για να αφαιρέσετε υπάρχουσες κλειδώσεις, χρησιμοποιήστε
nullαν δεν χρειάζεται)
Γιατί πρέπει να καλέσω τη μέθοδο Seek() στο stream;? Μετά τη γραφή σε ένα stream, η θέση είναι στο τέλος. Πρέπει να επαναφέρετε στην αρχή με Seek(0, SeekOrigin.Begin) πριν από την ανάγνωση.
Μπορώ να χρησιμοποιήσω διαφορετικούς κωδικούς για διαφορετικά φύλλα;? Ναι, αλλά θα χρειαστεί να χρησιμοποιήσετε τις παραδοσιακές Workbook μεθόδους προστασίας ανά φύλλο του API αντί του LowCode API.
Πώς μπορώ να αφαιρέσω την προστασία με κωδικό πρόσβασης;? Περάστε κενές συμβολοσειρές ή null και για τις δύο παραμέτρους κωδικού πρόσβασης, ή χρησιμοποιήστε τις παραδοσιακές API’s Unprotect() μέθοδος.
Ποιοι αλγόριθμοι κρυπτογράφησης υποστηρίζονται;? Τυπική κρυπτογράφηση Office, συμπεριλαμβανομένων των AES-128, AES-256, και του παλαιού RC4 για συμβατότητα.
Σύνοψη Αναφοράς API
Κύριες Κλάσεις
SpreadsheetLocker: Στατική κλάση που παρέχει απλοποιημένες μεθόδους προστασίαςLowCodeLoadOptions: Διαμόρφωση για τη φόρτωση αρχείων ExcelLowCodeSaveOptions: Διαμόρφωση για έξοδο (αρχείο ή ροή)FileFormatUtil: Κλάση βοηθητικού προγράμματος για επαλήθευση κωδικού πρόσβασηςLoadOptions: Επιλογές για το άνοιγμα προστατευμένων βιβλίων εργασίας
Απαραίτητα Ιδιότητες
InputFile: Διαδρομή αρχείου Excel προέλευσηςOutputFile: Διαδρομή αρχείου προορισμού (έξοδος βάσει αρχείου)OutputStream: Ροή προορισμού (έξοδος βασισμένη σε ροή)SaveFormat: Μορφή αρχείου εξόδουPassword: Κωδικός πρόσβασης για το άνοιγμα προστατευμένων βιβλίων εργασίας (inLoadOptions)
Κύριες μέθοδοι
SpreadsheetLocker.Process(loadOpts, saveOpts, password, unprotectPassword): Εφαρμογή προστασίας με κωδικό πρόσβασηςFileFormatUtil.VerifyPassword(stream, password): Επαλήθευση ότι ο κωδικός πρόσβασης είναι σωστόςMemoryStream.Seek(offset, origin): Επαναφορά θέσης ροής για ανάγνωσηWorkbook.Protect(type, password): Παραδοσιακή μέθοδος προστασίας APIWorkbook.Unprotect(password): Αφαίρεση προστασίας από το βιβλίο εργασίας
Τύποι Εξαίρεσης
ExceptionType.IncorrectPassword: Εκτοπίζεται όταν ανοίγεται προστατευμένο αρχείο χωρίς το σωστό κωδικό πρόσβασηςExceptionType.InvalidFileFormat: Η μορφή αρχείου δεν αναγνωρίζεταιExceptionType.FileCorrupted: Η δομή του αρχείου είναι κατεστραμμένη