Εργασία με τις ρυθμίσεις του Core Workbook

Εργασία με τις ρυθμίσεις του Core Workbook

Εργασία με τις ρυθμίσεις του Core Workbook

Πέρα από το δίκτυο φύλλων εργασίας, ένα βιβλίο εργασίας φέρνει μεταδεδομένα και διαμόρφωση που επηρεάζουν τον τρόπο με τον οποίο το Excel ερμηνεύει: το σύστημα ημερομηνίας, ο συγγραφέας εγγράφων, η τοπική και αν αποθηκεύονται πληροφορίες ανάκτησης. Workbook Η τάξη εκθέτει αυτά μέσα από Workbook.Settings, Workbook.Properties,και Workbook.LoadDiagnostics.Η συμπεριφορά του σώματος ελέγχεται μέσω της SaveOptions.


Εισαγωγή Workbook Settings

Workbook.Settings Επιστρέφει ο Α WorkbookSettings Συσκευή - Set Date1904 Για να true για να χρησιμοποιήσετε το σύστημα ημερομηνίας 1904 (κοινό σε αρχεία που προέρχονται από macOS Excel). Culture Για το A CultureInfo Η ημερομηνία και ο αριθμός ελέγχου είναι τοπικοί.

using Aspose.Cells_FOSS;
using System.Globalization;

var wb = new Workbook();

// Use 1904 date system
wb.Settings.Date1904 = true;

// Set culture for number/date formatting
wb.Settings.Culture = new CultureInfo("en-US");

wb.Worksheets[0].Cells["A1"].PutValue("Settings applied");
wb.Save("settings.xlsx");

var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);

Ιδιοκτησία εγγράφου

Workbook.Properties Επιστρέφει ο Α WorkbookProperties αντικείμενα με δείγματα που προσανατολίζονται σε προβολή, όπως ShowObjects και FilterPrivacy.Για τη χρήση των μεταδεδομένων και περιγραφικών δεδομένων Workbook.DocumentProperties,που εκθέτει Title, Subject, Author, Keywords, Comments, Category, Company,και Manager ως άμεσες ιδιότητες ίχνης.

using Aspose.Cells_FOSS;

var wb = new Workbook();

var doc = wb.DocumentProperties;
doc.Title = "Quarterly Report";
doc.Subject = "Sales Data";
doc.Author = "Reporting Team";
doc.Company = "Contoso Ltd";
doc.Keywords = "sales, quarterly, 2026";
doc.Comments = "Generated by automated pipeline";

wb.Worksheets[0].Cells["A1"].PutValue("See document properties");
wb.Save("properties.xlsx");

var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);

Κατεβάστε τη διάγνωση

Μετά την ανάθεση ενός βιβλίου εργασίας, ελέγξτε Workbook.LoadDiagnostics Να ανακαλύψουμε αν η βιβλιοθήκη έχει κάνει κάποια επισκευή. LoadDiagnostics.HasRepairs Είναι true Εάν έχει γίνει τουλάχιστον μία δομική επισκευή. LoadDiagnostics.HasDataLossRisk Είναι true Αν η επισκευή των δεδομένων διαγράφεται.Iterate LoadDiagnostics.Issues Η πρόσβαση σε ατομικά DiagnosticEntry αντικείμενα με Code, Severity, Message, RepairApplied,και DataLossRisk.

using Aspose.Cells_FOSS;

var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };

try
{
    var wb = new Workbook("possibly-corrupt.xlsx", opts);
    var diag = wb.LoadDiagnostics;

    if (diag.HasRepairs)
    {
        Console.WriteLine("Repairs applied: " + diag.HasRepairs);
        Console.WriteLine("Data loss risk: " + diag.HasDataLossRisk);
        foreach (var entry in diag.Issues)
        {
            Console.WriteLine($"  [{entry.Severity}] {entry.Code}: {entry.Message}");
            Console.WriteLine($"  RepairApplied={entry.RepairApplied}, DataLossRisk={entry.DataLossRisk}");
        }
    }
    else
    {
        Console.WriteLine("File loaded cleanly.");
    }
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Unrecoverable: " + ex.Message);
}

Αποθηκεύστε τις επιλογές

Workbook.Save(path, SaveOptions) Αποδέχεται το A SaveOptions Να προσαρμόσουμε την εξοικονόμηση. UseSharedStrings ελέγχει εάν οι τιμές γραμμής αποθηκεύονται στο κοινό πίνακα γραμμάτων (συντομεύει το μέγεθος αρχείου για φύλλα με πολλές επαναλαμβανόμενες γραφές). ValidateBeforeSave Δουλεύει εσωτερική επικύρωση βιβλίου εργασίας πριν γράψει. CompactStyles Απομακρύνει τα αχρησιμοποίητα στυλ. PreserveRecoveryMetadata ελέγχει αν τα μεταδεδομένα αποκατάστασης του Office διατηρούνται.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

for (var i = 0; i < 100; i++)
    ws.Cells[i, 0].PutValue("Repeated string value");

var opts = new SaveOptions
{
    UseSharedStrings = true,
    ValidateBeforeSave = true,
    CompactStyles = true,
    PreserveRecoveryMetadata = false,
};

wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");

Συμβουλές και βέλτιστες πρακτικές

  • Ελέγξτε LoadDiagnostics.HasDataLossRisk μετά την φόρτωση επισκευάστηκε αρχεία και προειδοποιεί τους χρήστες εάν τα δεδομένα μπορεί να έχουν χαθεί.
  • ΣΕΤΙΔΑ DocumentProperties.Author και Company για αρχεία που μοιράζονται με τους τελικούς χρήστες — αυτά εμφανίζονται στο παράθυρο πληροφοριών αρχείων του Excel.
  • UseSharedStrings = true Είναι ευεργετικό για φύλλα με πολλές επαναλαμβανόμενες τιμές στήλης (π.χ. στίχους κατάστασης) και έχει ελάχιστη επίδραση σε αριθμητικά βαριά φύλλια.
  • Date1904 πρέπει να ταιριάζει μεταξύ της πηγής και του αρχείου στόχου για να αποφευχθεί η ροή ημερομηνίας-αξία κατά την αντιγραφή των κυττάρων ανάμεσα στα βιβλία εργασίας.

κοινά ζητήματα

ΘέμαΑιτίαΦΙΛΕΞΗ
LoadDiagnostics.Issues Είναι κενό μετά την επισκευή.Δεν απαιτείται επισκευή ή TryRepair* Δεν έχει καθοριστείΣΕΤΙΔΑ TryRepairPackage = true και TryRepairXml = true Σε LoadOptions
DocumentProperties.Title Δεν επιμένειΧρησιμοποιώντας WorkbookProperties Αντί να DocumentPropertiesΜέσα από το μετεωρολογικό σύστημα μέσω Workbook.DocumentProperties,Οχι Workbook.Properties
WorkbookSaveException ΣωστάειΗ αποτυχία της επικύρωσης με ValidateBeforeSave = trueΕλέγξτε το μήνυμα εξαίρεσης, απενεργοποιήστε την επικύρωση για να απομονώσετε τα κακά δεδομένα

FAQ

Ποια είναι η διαφορά μεταξύ WorkbookProperties και DocumentProperties?

WorkbookProperties (Περισσότερα από Workbook.Properties• Έχει δίσκους οθόνης OOXML (π.χ. ShowObjects). DocumentProperties (Περισσότερα από Workbook.DocumentProperties) κατέχει τις αλυσίδες μεταμένων στο στυλ του Δουβλίνο-Κόρου: τίτλο, συγγραφέας, εταιρεία κλπ.

Η ΚΕ CompactStyles Διαγράψτε τα στυλ που χρειάζομαι;?

CompactStyles αφαιρεί μόνο τα στυλ που δεν αναφέρονται από οποιοδήποτε κελί, υπό όρους μορφή ή ονομαστικό σήμα.

Μπορώ να διαβάσω LoadDiagnostics Ακόμα και όταν δεν δοκιμάστηκε επισκευή.?

Όταν δεν έγινε προσπάθεια επισκευής, η Issues Η συλλογή είναι κενή και οι δύο HasRepairs και HasDataLossRisk Επιστροφή false.


Συνοπτική αναφορά API

Κλάση / ΙδιοκτησίαΠεριγραφή
Workbook.SettingsΕπιστροφή WorkbookSettings
WorkbookSettings.Date1904Χρησιμοποιήστε το σύστημα ημερομηνίας 1904
WorkbookSettings.CultureΤοποθεσία για αριθμό/ημερομηνία παραχώρησης
Workbook.DocumentPropertiesΣυγγραφέας, τίτλος, εταιρικά μεταδεδομένα
Workbook.LoadDiagnosticsΈκθεση επισκευής μεταφόρτωσης
LoadDiagnostics.HasRepairstrue Αν πραγματοποιηθεί επισκευή
LoadDiagnostics.HasDataLossRisktrue Εάν επισκευάσετε τα διαγραφόμενα δεδομένα
LoadDiagnostics.IssuesΗ συλλογή των DiagnosticEntry αντικείμενα
DiagnosticEntry.CodeΣύντομη επισκευή κώδικα string
DiagnosticEntry.SeverityDiagnosticSeverity Αξία Enum
DiagnosticEntry.MessageΑνθρώπινο-διαβαστό περιγραφή επισκευής
SaveOptions.UseSharedStringsΑποθηκεύστε τις γραμμές στο κοινό πίνακα γραμμάτων
SaveOptions.ValidateBeforeSaveΔραστηριότητα εσωτερικής επικύρωσης πριν γράψετε
SaveOptions.CompactStylesΑπομακρύνει τα αχρησιμοποίητα στυλ
 Ελληνικά