Arbeta med Core Workbook Settings
Arbeta med Core Workbook Settings
Utöver arbetsbladen bär en arbetsbok metadata och konfiguration som påverkar hur Excel tolkar det: datumsystemet, dokumentförfattaren, lokal och om återhämtningsinformation lagras. Workbook Klassen visar dessa genom Workbook.Settings, Workbook.Properties,och Workbook.LoadDiagnostics.Save beteende kontrolleras genom SaveOptions.
Arbetsbok Settings
Workbook.Settings Återkommer A WorkbookSettings objektet Set Date1904 till true att använda 1904 datumsystemet (vanligt i filer som härrör från macOS Excel). Culture till A CultureInfo instans att kontrollera nummer och 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);Dokumentegenskaper
Workbook.Properties Återkommer A WorkbookProperties objekt med displayorienterade flaggor som ShowObjects och FilterPrivacy.För författarskap och beskrivande metadata användning Workbook.DocumentProperties,som uttrycker Title, Subject, Author, Keywords, Comments, Category, Company,och Manager som direkt sträng egenskaper.
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);Ladda diagnostik
Efter att ha laddat upp en arbetsbok, kolla in Workbook.LoadDiagnostics För att ta reda på om biblioteket tillämpade några reparationer. LoadDiagnostics.HasRepairs är true Om minst en strukturell reparation har gjorts. LoadDiagnostics.HasDataLossRisk är true Om en reparation av borttappade data. iterate LoadDiagnostics.Issues Tillträde individuellt DiagnosticEntry Objekter med Code, Severity, Message, RepairApplied,och DataLossRisk.
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); }
---
### Spara alternativ
`Workbook.Save(path, SaveOptions)` accepterar A `SaveOptions` för att anpassa spara produktionen. `UseSharedStrings` Kontrollera om strängvärden lagras i den delade strängen (minskar filstorleken för ark med många upprepade trådar). `ValidateBeforeSave` kör intern arbetsbok validation innan du skriver. `CompactStyles` Ta bort oanvända stilar. `PreserveRecoveryMetadata` Kontrollera om Office-återvinningens metadata är bevarade.
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 och bästa praxis
- Check
LoadDiagnostics.HasDataLossRiskefter laddning reparerade filer och varnar användare om data kan ha blivit borttappade. - Setade
DocumentProperties.AuthorochCompanyför filer som delas med slutanvändare – dessa visas i Excel-filerinformationspanelen. UseSharedStrings = trueär fördelaktigt för blad med många upprepade strängvärden (t.ex. statuskolumner); det har minimal inverkan på numerisk-viktiga blad.Date1904måste matcha käll- och målfilen för att undvika datumvärde drift när kopiera celler mellan arbetsböcker.
Vanliga frågor
| Issue | Cause | Fixar |
|---|---|---|
LoadDiagnostics.Issues är tom efter reparation | Inga reparationer behövs eller TryRepair* inte satt | Setade TryRepairPackage = true och TryRepairXml = true i LoadOptions |
DocumentProperties.Title inte persistera | Using WorkbookProperties I stället för DocumentProperties | Tillgång till strängmetadata genom Workbook.DocumentProperties,inte Workbook.Properties |
WorkbookSaveException på Save | Valideringsfel med ValidateBeforeSave = true | Kontrollera undantagsmeddelandet; inaktivera validering för att isolera dåliga data |
FAQ
Vad är skillnaden mellan WorkbookProperties och DocumentProperties?
WorkbookProperties (via Workbook.Properties• har OOXML-displayflaggor (t.ex. ShowObjects). DocumentProperties (via Workbook.DocumentProperties) innehar de dublin-koreiska metadata strängarna: titel, författare, företag etc.
Does CompactStyles Ta bort stilar jag behöver?
CompactStyles tar bort endast stilar som inte hänvisas av någon cell, villkorlig format eller namngiven stil.
Kan jag läsa LoadDiagnostics Även om ingen reparation har försökt.?
När ingen reparation har försökt Issues Samlingen är tom och båda HasRepairs och HasDataLossRisk återvända false.
API Referens sammanfattning
| Klass / Fastighet | Beskrivning |
|---|---|
Workbook.Settings | återvänder WorkbookSettings |
WorkbookSettings.Date1904 | Använd 1904 datum system |
WorkbookSettings.Culture | Lokala för nummer/datum parsing |
Workbook.DocumentProperties | Författare, titel, företagets metadata |
Workbook.LoadDiagnostics | Post-load reparationsrapport |
LoadDiagnostics.HasRepairs | true Om någon reparation har genomförts |
LoadDiagnostics.HasDataLossRisk | true Om du reparerar borttappade data |
LoadDiagnostics.Issues | Samlingen av DiagnosticEntry föremål |
DiagnosticEntry.Code | Kort reparation kod sträng |
DiagnosticEntry.Severity | DiagnosticSeverity Enum värde |
DiagnosticEntry.Message | Mänskligt lästa reparations beskrivning |
SaveOptions.UseSharedStrings | Håll strängar i delad stringstabell |
SaveOptions.ValidateBeforeSave | Kör intern validering innan du skriver |
SaveOptions.CompactStyles | Ta bort oanvända stilar |