Mit Core Workbook Settings arbeiten
Mit Core Workbook Settings arbeiten
Über das Arbeitsblattnetz hinaus trägt ein Arbeitsbuch Metadaten und Konfigurationen, die beeinflussen, wie Excel es interpretiert: das Datumsystem, Dokumentauftragte, lokale und ob die Wiederherstellung von Informationen gespeichert wird. Workbook Die Klassen zeigen diese durch Workbook.Settings, Workbook.Properties,und Workbook.LoadDiagnostics.Save Verhalten wird durch SaveOptions.
Arbeitsbuch Settings
Workbook.Settings zurückkehren a WorkbookSettings Objekte - Set Date1904 zu true zum Einsatz des 1904 Date-Systems (verbreitet in Dateien, die aus macOS Excel hergestellt werden). Culture zu A CultureInfo Instanz zum Kontrollnummer und Datum Parsing 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);Dokumenten Eigentum
Workbook.Properties zurückkehren a WorkbookProperties Objekte mit Displayorientierten Flaggen wie ShowObjects und FilterPrivacy.Für Autorität und Beschreibungsmetadata Workbook.DocumentProperties,Und die exponieren Title, Subject, Author, Keywords, Comments, Category, Company,und Manager als direkte String-Eigenschaften.
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);Lade Diagnose
Nach dem Laden eines Arbeitsblattes, überprüfen Sie Workbook.LoadDiagnostics Um zu erfahren, ob die Bibliothek Reparaturen anwendet. LoadDiagnostics.HasRepairs ist true wenn mindestens eine Strukturreparation durchgeführt wurde. LoadDiagnostics.HasDataLossRisk ist true wenn eine Reparatur verlorene Daten. LoadDiagnostics.Issues Zugang individuell DiagnosticEntry Objekte mit Code, Severity, Message, RepairApplied,und 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);
}Sparen Sie Optionen
Workbook.Save(path, SaveOptions) akzeptiert A SaveOptions Gegenstand der Anpassung des Sparprodukts. UseSharedStrings überprüft, ob Stringwerte in der gemeinsamen Stringtabelle gespeichert werden (der Dateigröße für Blätter mit vielen wiederholten Strängen reduziert). ValidateBeforeSave Durchführen Sie die interne Arbeitsbuch-Validation vor dem Schreiben. CompactStyles Entfernen Sie ungenutzte Stile. PreserveRecoveryMetadata Überprüfen Sie, ob Office-Erholungsmetadata gespeichert sind.
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.");Tipps und beste Praktiken
- Check
LoadDiagnostics.HasDataLossRisknach der Lade von Reparaten und warnen die Benutzer, wenn die Daten gelöscht wurden. - Set
DocumentProperties.AuthorundCompanyfür Dateien, die mit Endbenutzern geteilt werden – diese erscheinen im Excel-Datei-Informationspaneel. UseSharedStrings = trueist nützlich für Blätter mit vielen wiederholten Stringwerte (z. B. Statuskolonnen); es hat einen minimalen Einfluss auf numerisch schwere Blätter.Date1904muss zwischen der Quelle und der Zieldatei passen, um das Datum-Wert-Drift beim Kopieren von Zellen zwischen Arbeitsbüchern zu vermeiden.
Gemeinsame Probleme
| Thema | Ursache | Fix |
|---|---|---|
LoadDiagnostics.Issues nach der Reparatur leer | Keine Reparatur oder TryRepair* nicht eingestellt | Set TryRepairPackage = true und TryRepairXml = true In LoadOptions |
DocumentProperties.Title nicht beständig | mit Gebrauch WorkbookProperties statt der DocumentProperties | Zugang zu String Metadata durch Workbook.DocumentProperties,nicht Workbook.Properties |
WorkbookSaveException auf Save | Validierungsschwierigkeiten mit ValidateBeforeSave = true | Überprüfen Sie die Ausnahmenachricht; die Validierung nicht aktiviert, um die schlechten Daten zu isolieren |
FAQ
Was ist der Unterschied zwischen WorkbookProperties und DocumentProperties?
WorkbookProperties (via Workbook.Properties* OOXML-Demonstrationsflaggen (z. B. ShowObjects). DocumentProperties (via Workbook.DocumentProperties) hält die Dublin-Kore-Stil-Metadatenstreifen: Titel, Autor, Gesellschaft usw.
Das macht CompactStyles Styles zu löschen, die ich benötige?
CompactStyles Entfernt nur Stile, die nicht durch eine Zelle, ein Bedingungsformat oder ein benanntes Stil bezeichnet werden.
kann ich lesen LoadDiagnostics Auch wenn keine Reparatur versucht wurde.?
Wenn keine Reparatur versucht wurde, Issues Die Sammlung ist leer und beide HasRepairs und HasDataLossRisk Rückkehr false.
API Referenzabschnitt
| Klasse / Eigentum | Beschreibung |
|---|---|
Workbook.Settings | Rückkehr WorkbookSettings |
WorkbookSettings.Date1904 | 1904 Date System verwenden |
WorkbookSettings.Culture | Lokale für die Nummer/Datumsparsing |
Workbook.DocumentProperties | Autor, Titel, Unternehmensmetadata |
Workbook.LoadDiagnostics | Post-Lad Reparaturbericht |
LoadDiagnostics.HasRepairs | true wenn eine Reparatur durchgeführt wurde |
LoadDiagnostics.HasDataLossRisk | true wenn die verlorenen Daten repariert werden |
LoadDiagnostics.Issues | Die Sammlung von DiagnosticEntry Objekte |
DiagnosticEntry.Code | Kurzreparation Code String |
DiagnosticEntry.Severity | DiagnosticSeverity Enum Wert |
DiagnosticEntry.Message | Menschlich-lesbare Reparaturbeschreibung |
SaveOptions.UseSharedStrings | Speichern Sie Strings in der gemeinsamen String-Tabelle |
SaveOptions.ValidateBeforeSave | Durchführen Sie die interne Validation vor dem Schreiben |
SaveOptions.CompactStyles | Ungenutzte Stile entfernen |