Comment travailler avec les paramètres de base du classeur dans .NET
Aspose.Cells FOSS for .NET expose la configuration au niveau du classeur via Workbook.Settings (locale et système de dates), Workbook.DocumentProperties (métadonnées d’auteur), Workbook.LoadDiagnostics (rapport de réparation) et SaveOptions (comportement d’enregistrement). Installez avec dotnet add package Aspose.Cells_FOSS.
Guide étape par étape
Étape 1 : Installer le package
dotnet add package Aspose.Cells_FOSSÉtape 2 : Importer l’espace de noms
using Aspose.Cells_FOSS;
using System.Globalization;Étape 3 : Configurer WorkbookSettings
Workbook.Settings renvoie un objet WorkbookSettings. Définissez Date1904 = true pour les fichiers d’origine macOS qui utilisent le système de dates 1904. Définissez Culture pour contrôler la locale d’analyse des nombres et des dates.
using Aspose.Cells_FOSS;
using System.Globalization;
var wb = new Workbook();
wb.Settings.Date1904 = false;
wb.Settings.Culture = new CultureInfo("en-US");
wb.Worksheets[0].Cells["A1"].PutValue("Settings configured");
wb.Save("settings.xlsx");
var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);Étape 4 : Définir les propriétés du document
Workbook.DocumentProperties expose Title, Subject, Author, Keywords, Comments, Category, Company et Manager en tant que propriétés de chaîne directes.
using Aspose.Cells_FOSS;
var wb = new Workbook();
wb.DocumentProperties.Title = "Quarterly Report";
wb.DocumentProperties.Author = "Reporting Team";
wb.DocumentProperties.Company = "Contoso Ltd";
wb.DocumentProperties.Keywords = "quarterly, sales, 2026";
wb.Save("properties.xlsx");
var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);Étape 5 : Utiliser SaveOptions
Workbook.Save(path, SaveOptions) accepte un objet SaveOptions pour personnaliser la sortie. Propriétés clés : UseSharedStrings (réduit la taille du fichier pour les feuilles contenant des chaînes répétées), ValidateBeforeSave (exécute la validation avant l’écriture) et CompactStyles (supprime les styles inutilisés).
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 50; i++)
ws.Cells[i, 0].PutValue("Repeated text");
var opts = new SaveOptions
{
UseSharedStrings = true,
ValidateBeforeSave = true,
CompactStyles = true,
};
wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");Étape 6 : Lire LoadDiagnostics après la réparation
Après le chargement avec TryRepairPackage = true, vérifiez Workbook.LoadDiagnostics pour voir si des réparations ont été appliquées.
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;
Console.WriteLine("HasRepairs: " + diag.HasRepairs);
Console.WriteLine("HasDataLossRisk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
Console.WriteLine($" [{entry.Severity}] {entry.Code}: {entry.Message}");Problèmes courants et solutions
WorkbookSaveException lorsque ValidateBeforeSave = true.
Le classeur contient une incohérence structurelle. Désactivez ValidateBeforeSave temporairement pour enregistrer et inspecter le fichier, puis corrigez le contenu problématique.
Propriétés du document non visibles dans le panneau Informations du fichier d’Excel.
Assurez-vous de définir les propriétés sur Workbook.DocumentProperties, pas sur Workbook.Properties. Ce dernier contient des indicateurs d’affichage, pas des chaînes de métadonnées.
Date1904 = true provoque un décalage des valeurs de date.
Date1904 modifie l’époque utilisée pour les numéros de série de date. Ne le définissez sur true que pour les fichiers provenant d’Excel macOS avec le système de dates 1904 activé ; le mélange des systèmes entraîne des erreurs de 1462 jours.
Foire aux questions
Quelle est la différence entre WorkbookSettings et WorkbookProperties?
WorkbookSettings (via Workbook.Settings) contient des valeurs de configuration comme Date1904 et Culture. WorkbookProperties (via Workbook.Properties) contient des indicateurs d’affichage OOXML tels que ShowObjects. Les chaînes de métadonnées du document (Titre, Auteur, etc.) se trouvent dans Workbook.DocumentProperties.
Est‑ce que CompactStyles supprime parfois des styles dont j’ai besoin ?
Non. CompactStyles ne supprime que les styles qui ne sont référencés par aucune cellule ou règle de format dans le classeur.
Puis‑je lire LoadDiagnostics même lorsqu’aucune réparation n’a été tentée ?
Oui. La collection Issues sera vide et HasRepairs ainsi que HasDataLossRisk renverront false.