Werken met Core Workbook Settings
Werken met kernwerkboekinstellingen
Naast het werkbladrooster bevat een werkboek metadata en configuratie die invloed hebben op hoe Excel het interpreteert: het datum-systeem, de documentauteur, de locale en of herstel-informatie wordt opgeslagen. De Workbook-klasse maakt deze toegankelijk via Workbook.Settings, Workbook.Properties en Workbook.LoadDiagnostics. Het opslaan-gedrag wordt geregeld via SaveOptions.
Werkboekinstellingen
Workbook.Settings retourneert een WorkbookSettings-object. Stel Date1904 in op true om het 1904-datum-systeem te gebruiken (veelvoorkomend in bestanden die afkomstig zijn van macOS Excel). Stel Culture in op een CultureInfo-instantie om de locale voor getal- en datum-parsen te bepalen.
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);Documenteigenschappen
Workbook.Properties retourneert een WorkbookProperties-object met weergavegerichte vlaggen zoals ShowObjects en FilterPrivacy. Voor auteurschap en beschrijvende metadata gebruik je Workbook.DocumentProperties, dat Title, Subject, Author, Keywords, Comments, Category, Company en Manager als directe string-eigenschappen blootlegt.
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);Laaddiagnostiek
Na het laden van een werkmap, controleer Workbook.LoadDiagnostics om te ontdekken of de bibliotheek enige reparaties heeft uitgevoerd. LoadDiagnostics.HasRepairs is true als er ten minste één structurele reparatie is uitgevoerd. LoadDiagnostics.HasDataLossRisk is true als een reparatie gegevens heeft weggegooid. Itereer LoadDiagnostics.Issues om individuele DiagnosticEntry objecten te benaderen met Code, Severity, Message, RepairApplied en 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);
}Opslaanopties
Workbook.Save(path, SaveOptions) accepteert een SaveOptions object om de opslagoutput aan te passen. UseSharedStrings bepaalt of tekenreekswaarden worden opgeslagen in de gedeelde tekenreeks-tabel (vermindert bestandsgrootte voor bladen met veel herhaalde tekenreeksen). ValidateBeforeSave voert interne werkmapvalidatie uit vóór het schrijven. CompactStyles verwijdert ongebruikte stijlen. PreserveRecoveryMetadata bepaalt of Office-herstelmetadata worden bewaard.
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.");Tips en best practices
- Controleer
LoadDiagnostics.HasDataLossRiskna het laden van gerepareerde bestanden en waarschuw gebruikers als gegevens mogelijk zijn weggelaten. - Stel
DocumentProperties.AuthorenCompanyin voor bestanden die met eindgebruikers worden gedeeld — deze verschijnen in het bestandsinfopaneel van Excel. UseSharedStrings = trueis voordelig voor bladen met veel herhaalde tekenreekswaarden (bijv. statuskolommen); het heeft minimale impact op bladen met veel numerieke gegevens.Date1904moet tussen het bron- en doelbestand overeenkomen om datum-waarde drift te voorkomen bij het kopiëren van cellen tussen werkmappen.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
LoadDiagnostics.Issues is leeg na reparatie | Er waren geen reparaties nodig of TryRepair* was niet ingesteld | Stel TryRepairPackage = true en TryRepairXml = true in LoadOptions |
DocumentProperties.Title niet bewaard | Gebruik WorkbookProperties in plaats van DocumentProperties | Toegang tot stringmetadata via Workbook.DocumentProperties, niet Workbook.Properties |
WorkbookSaveException bij opslaan | Validatiefout met ValidateBeforeSave = true | Inspecteer het exceptiebericht; schakel validatie uit om de foute gegevens te isoleren |
FAQ
Wat is het verschil tussen WorkbookProperties en DocumentProperties?
WorkbookProperties (via Workbook.Properties) bevat OOXML-weergavevlaggen (bijv. ShowObjects). DocumentProperties (via Workbook.DocumentProperties) bevat de Dublin-Core-achtige metadatavelden: Titel, Auteur, Bedrijf, enz.
Verwijdert CompactStyles stijlen die ik nodig heb?
CompactStyles verwijdert alleen stijlen die niet worden gebruikt door een cel, voorwaardelijke opmaak of een benoemde stijl. Stijlen die in gebruik zijn worden nooit verwijderd.
Kan ik LoadDiagnostics lezen zelfs als er geen reparatie is geprobeerd?
Ja. Wanneer er geen reparatie is geprobeerd, is de Issues collectie leeg en retourneren zowel HasRepairs als HasDataLossRisk false.
API Reference Samenvatting
| Klasse / Eigenschap | Beschrijving |
|---|---|
Workbook.Settings | Retourneert WorkbookSettings |
WorkbookSettings.Date1904 | Gebruik het 1904-datumsysteem |
WorkbookSettings.Culture | Locale voor nummer- en datumparsing |
Workbook.DocumentProperties | Auteur, titel, bedrijfsmetadata |
Workbook.LoadDiagnostics | Rapport na reparatie bij laden |
LoadDiagnostics.HasRepairs | true als er reparaties zijn toegepast |
LoadDiagnostics.HasDataLossRisk | true als reparatie verworpen data |
LoadDiagnostics.Issues | Collectie van DiagnosticEntry objecten |
DiagnosticEntry.Code | Korte reparatiecode-string |
DiagnosticEntry.Severity | DiagnosticSeverity enum-waarde |
DiagnosticEntry.Message | Menselijk leesbare reparatiebeschrijving |
SaveOptions.UseSharedStrings | Sla strings op in gedeelde stringtabel |
SaveOptions.ValidateBeforeSave | Voer interne validatie uit vóór het schrijven |
SaveOptions.CompactStyles | Verwijder ongebruikte stijlen |