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.HasDataLossRiskaprè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.AuthoretCompanypour les fichiers partagés avec des utilisateurs finaux — ces ficheront dans le panneau d’information de fichier Excel. UseSharedStrings = trueIl 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.Date1904doit 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ème | Cause | Fixé |
|---|---|---|
LoadDiagnostics.Issues Il est vide après réparation | Aucune 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 persistant | Utiliser WorkbookProperties Au lieu de DocumentProperties | Accès à la méthodologie par le biais de Workbook.DocumentProperties,Non pas Workbook.Properties |
WorkbookSaveException sur Save | Faillite de validation avec ValidateBeforeSave = true | Inspecter 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.Settings | Retourner WorkbookSettings |
WorkbookSettings.Date1904 | Utiliser le système de date 1904 |
WorkbookSettings.Culture | Localisation pour le nombre/date parsing |
Workbook.DocumentProperties | Auteur, titre, méta-data de l’entreprise |
Workbook.LoadDiagnostics | Rapport de réparation post-charge |
LoadDiagnostics.HasRepairs | true Si une réparation a été effectuée |
LoadDiagnostics.HasDataLossRisk | true Si les données déchirées sont réparées |
LoadDiagnostics.Issues | La collection de DiagnosticEntry objets |
DiagnosticEntry.Code | Réservation courte code string |
DiagnosticEntry.Severity | DiagnosticSeverity Enum valeur |
DiagnosticEntry.Message | Description de réparation humaine-rédaction |
SaveOptions.UseSharedStrings | Établir des lignes dans la table de ligne partagée |
SaveOptions.ValidateBeforeSave | Exécuter la validation interne avant d’écrire |
SaveOptions.CompactStyles | Supprimer les styles inutilisés |