Werken met Core Workbook Settings

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.HasDataLossRisk na het laden van gerepareerde bestanden en waarschuw gebruikers als gegevens mogelijk zijn weggelaten.
  • Stel DocumentProperties.Author en Company in voor bestanden die met eindgebruikers worden gedeeld — deze verschijnen in het bestandsinfopaneel van Excel.
  • UseSharedStrings = true is voordelig voor bladen met veel herhaalde tekenreekswaarden (bijv. statuskolommen); het heeft minimale impact op bladen met veel numerieke gegevens.
  • Date1904 moet tussen het bron- en doelbestand overeenkomen om datum-waarde drift te voorkomen bij het kopiëren van cellen tussen werkmappen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
LoadDiagnostics.Issues is leeg na reparatieEr waren geen reparaties nodig of TryRepair* was niet ingesteldStel TryRepairPackage = true en TryRepairXml = true in LoadOptions
DocumentProperties.Title niet bewaardGebruik WorkbookProperties in plaats van DocumentPropertiesToegang tot stringmetadata via Workbook.DocumentProperties, niet Workbook.Properties
WorkbookSaveException bij opslaanValidatiefout met ValidateBeforeSave = trueInspecteer 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 / EigenschapBeschrijving
Workbook.SettingsRetourneert WorkbookSettings
WorkbookSettings.Date1904Gebruik het 1904-datumsysteem
WorkbookSettings.CultureLocale voor nummer- en datumparsing
Workbook.DocumentPropertiesAuteur, titel, bedrijfsmetadata
Workbook.LoadDiagnosticsRapport na reparatie bij laden
LoadDiagnostics.HasRepairstrue als er reparaties zijn toegepast
LoadDiagnostics.HasDataLossRisktrue als reparatie verworpen data
LoadDiagnostics.IssuesCollectie van DiagnosticEntry objecten
DiagnosticEntry.CodeKorte reparatiecode-string
DiagnosticEntry.SeverityDiagnosticSeverity enum-waarde
DiagnosticEntry.MessageMenselijk leesbare reparatiebeschrijving
SaveOptions.UseSharedStringsSla strings op in gedeelde stringtabel
SaveOptions.ValidateBeforeSaveVoer interne validatie uit vóór het schrijven
SaveOptions.CompactStylesVerwijder ongebruikte stijlen

Zie ook

 Nederlands