Travailler avec les paramètres du livre de travail Core

Travailler avec les paramètres du livre de travail Core

Travailler avec les paramètres du livre de travail Core

Au-delà de la grille de feuilles d’oeuvre, un livre d’œuvres porte des métadonnées et des configurations qui affectent comment Excel l’interprète: le système de date, l’auteur du document, local, et si les informations de récupération sont stockées. Workbook Les classes les exposent à travers Workbook.Settings, Workbook.Properties,et Workbook.LoadDiagnostics.Le comportement de sauvetage est contrôlé par SaveOptions.


Les paramètres du Workbook

Workbook.Settings Retour à A WorkbookSettings Objet : Set Date1904 à true pour utiliser le système de date 1904 (comme dans les fichiers originaires d’un macOS Excel). Culture à A CultureInfo - le numéro de commande et la date pars local.

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

Propriétés du document

Workbook.Properties Retour à A WorkbookProperties des objets avec des drapeaux orientés à l’affichage tels que ShowObjects et FilterPrivacy.Pour l’auteur et l’utilisation des méta-data décritifs Workbook.DocumentProperties,qui expose Title, Subject, Author, Keywords, Comments, Category, Company,et Manager comme propriétés de la ligne directe.

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

Carte de diagnostic

Après avoir mis en charge un livre de travail, vérifiez Workbook.LoadDiagnostics Pour savoir si la bibliothèque a fait des réparations. LoadDiagnostics.HasRepairs est true Si au moins une réparation structurelle a été effectuée. LoadDiagnostics.HasDataLossRisk est true Si une réparation des données est perdues.Iterate LoadDiagnostics.Issues Accès individuel DiagnosticEntry Objets avec Code, Severity, Message, RepairApplied,et 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);
}

Sauver les options

Workbook.Save(path, SaveOptions) accepter A SaveOptions Il s’agit de personnaliser la production d’épargne. UseSharedStrings contrôle si les valeurs de fil sont stockées dans la table de fichier partagée (reduit la taille du fichie pour les feuilles avec plusieurs filets répétés). ValidateBeforeSave Il effectue la validation interne du livre de travail avant l’écriture. CompactStyles Supprimer les styles inutilisés. PreserveRecoveryMetadata Vérifier si les métadonnées de récupération Office sont conservées.

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

Conseils et meilleures pratiques

  • Vérifier LoadDiagnostics.HasDataLossRisk après le chargement, les fichiers ont été réparés et averti les utilisateurs si les données peuvent être supprimées.
  • Sélection DocumentProperties.Author et Company pour les fichiers partagés avec des utilisateurs finaux — ces ficheront dans le panneau d’information de fichier Excel.
  • UseSharedStrings = true Il est bénéfique pour les feuilles avec de nombreuses valeurs répétées (par exemple, columnes d’état); il a un impact minimal sur les listes numériques lourdes.
  • Date1904 doit correspondre entre le fichier source et cible pour éviter la dérive de valeur date lors de la copie des cellules entre les livres de travail.

Les problèmes communs

ProblèmeCauseFixé
LoadDiagnostics.Issues Il est vide après réparationAucune réparation n’a été nécessaire ou TryRepair* n’a pas été fixéSélection TryRepairPackage = true et TryRepairXml = true dans LoadOptions
DocumentProperties.Title Pas persistantUtiliser WorkbookProperties Au lieu de DocumentPropertiesAccès à la méthodologie par le biais de Workbook.DocumentProperties,Non pas Workbook.Properties
WorkbookSaveException sur SaveFaillite de validation avec ValidateBeforeSave = trueInspecter le message d’exception ; désactiver la validation pour isoler les mauvais données

FAQ

Quelle est la différence entre WorkbookProperties et DocumentProperties?

WorkbookProperties (à travers le Workbook.PropertiesIl contient des drapeaux de l’affichage OOXML (par exemple,. ShowObjects). DocumentProperties (à travers le Workbook.DocumentProperties) détient les lignes de métadonnées du style Dublin-Core : titre, auteur, société, etc.

Le fait CompactStyles Éliminer les styles dont je veux ?

CompactStyles Il ne supprime que les styles qui n’ont pas été mentionnés par une cellule, un format conditionnel ou un style nommé.

Je peux lire LoadDiagnostics Même si aucune réparation n’a été tentée.?

Si, quand aucune réparation n’a été tentée, la Issues La collection est vide et les deux HasRepairs et HasDataLossRisk Retour false.


Le résumé de référence API

Classes / PropriétéDescription
Workbook.SettingsRetourner WorkbookSettings
WorkbookSettings.Date1904Utiliser le système de date 1904
WorkbookSettings.CultureLocalisation pour le nombre/date parsing
Workbook.DocumentPropertiesAuteur, titre, méta-data de l’entreprise
Workbook.LoadDiagnosticsRapport de réparation post-charge
LoadDiagnostics.HasRepairstrue Si une réparation a été effectuée
LoadDiagnostics.HasDataLossRisktrue Si les données déchirées sont réparées
LoadDiagnostics.IssuesLa collection de DiagnosticEntry objets
DiagnosticEntry.CodeRéservation courte code string
DiagnosticEntry.SeverityDiagnosticSeverity Enum valeur
DiagnosticEntry.MessageDescription de réparation humaine-rédaction
SaveOptions.UseSharedStringsÉtablir des lignes dans la table de ligne partagée
SaveOptions.ValidateBeforeSaveExécuter la validation interne avant d’écrire
SaveOptions.CompactStylesSupprimer les styles inutilisés

Voir aussi

 Français