Lavorare con le impostazioni principali della cartella di lavoro
Lavorare con le impostazioni principali della cartella di lavoro
Oltre alla griglia di fogli, una cartella contiene metadati e configurazione che influenzano il modo in cui Excel lo interpreta: sistema di data, autore del documento, locale e se le informazioni di recupero sono memorizzate. Workbook La classe espone questi attraverso Workbook.Settings, Workbook.Properties, e Workbook.LoadDiagnostics.Il comportamento di salvataggio è controllato attraverso: SaveOptions.
Impostazioni della cartella di lavoro
Workbook.Settings restituisce un WorkbookSettings Oggetto. Date1904 a) per il true per utilizzare il sistema di data 1904 (comune nei file originari da macOS Excel). Set Culture a una CultureInfo Instanza per il controllo numero e data di analisi locale.
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);Proprietà del documento
Workbook.Properties restituisce un WorkbookProperties oggetti con segni orientati all’esposizione, quali: ShowObjects e di cui al punto 2 FilterPrivacy.Per l’autore e per l"uso dei metadati descrittivi. Workbook.DocumentProperties, che espone Title, Subject, Author, Keywords, Comments, Category, Company, e Manager come proprietà di stringa diretta.
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);Diagnostica del carico
Dopo aver caricato un foglio di lavoro, controllare Workbook.LoadDiagnostics Per scoprire se la biblioteca ha effettuato delle riparazioni. LoadDiagnostics.HasRepairs è: true se è stata effettuata almeno una riparazione strutturale. LoadDiagnostics.HasDataLossRisk è: true se una riparazione ha scartato i dati. Iterare LoadDiagnostics.Issues per accedere a singoli DiagnosticEntry oggetti con: Code, Severity, Message, RepairApplied, e 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);
}Salva le opzioni
Workbook.Save(path, SaveOptions) accetta un SaveOptions obiettare di personalizzare l’uscita del salvataggio. UseSharedStrings controlla se i valori delle stringhe sono memorizzati nella tabella di stringh condivisa (riducendo la dimensione del file per fogli con molte stringhi ripetute). ValidateBeforeSave esegue la convalida interna della cartella di lavoro prima dell’iscrizione. CompactStyles rimuove gli stili non utilizzati. PreserveRecoveryMetadata controlla se i metadati di recupero dell’Office sono conservati.
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.");Suggerimenti e migliori pratiche
- Controllo
LoadDiagnostics.HasDataLossRiskdopo il caricamento dei file riparati e avvertire gli utenti se i dati potrebbero essere caduti. - Set di dati
DocumentProperties.Authore di cui al punto 2Companyper i file condivisi con gli utenti finali questi appaiono nel pannello informazioni sui file di Excel. UseSharedStrings = trueè utile per i fogli con molti valori di stringhe ripetuti (ad esempio colonne di stato); ha un impatto minimo sui foglio numerico.Date1904deve corrispondere tra il file sorgente e di destinazione per evitare la deriva del valore della data quando si copiano celle fra cartelle.
Problemi comuni
| Numero di pubblicazione | Causa di morte | Rettifica |
|---|---|---|
LoadDiagnostics.Issues è vuoto dopo la riparazione. | Non sono state necessarie riparazioni o TryRepair* non è stato impostato. | Set di dati TryRepairPackage = true e di cui al punto 2 TryRepairXml = true in LoadOptions |
DocumentProperties.Title non persistente | Utilizzo di: WorkbookProperties invece di: DocumentProperties | Accedere ai metadati della stringa tramite: Workbook.DocumentProperties, non Workbook.Properties |
WorkbookSaveException a salvare | Mancato convalido di: ValidateBeforeSave = true | Ispezionare il messaggio di eccezione; disabilitare la convalida per isolare i dati non validi |
FAQ
Qual è la differenza tra: WorkbookProperties e di cui al punto 2 DocumentProperties?
WorkbookProperties (per mezzo di: Workbook.Properties) contiene flag di visualizzazione OOXML (ad es. ShowObjects). DocumentProperties (per mezzo di: Workbook.DocumentProperties) contiene le stringhe di metadati in stile Dublin-Core: Titolo, Autore, Impresa ecc.
- Sì. CompactStyles Cancellare gli stili di cui ho bisogno?
CompactStyles rimuove solo gli stili che non sono riferiti da alcuna cella, formato condizionale o stile nominato. Gli stile in uso non vengono mai rimossi.
Posso leggere ? LoadDiagnostics anche quando non si è tentato di ripararlo?
Quando non si è tentato alcuna riparazione, il… Issues la raccolta è vuota e entrambi HasRepairs e di cui al punto 2 HasDataLossRisk ritorno false.
Riassunto di riferimento API
| Categoria / proprietà | Descrizione |
|---|---|
Workbook.Settings | Ritorni WorkbookSettings |
WorkbookSettings.Date1904 | Utilizzare il sistema di data 1904 |
WorkbookSettings.Culture | Locale per l’analisi numero/data |
Workbook.DocumentProperties | Autore, titolo, metadati dell’azienda |
Workbook.LoadDiagnostics | Rapporto di riparazione dopo il carico |
LoadDiagnostics.HasRepairs | true se è stata effettuata una riparazione. |
LoadDiagnostics.HasDataLossRisk | true se ripara dati scartati |
LoadDiagnostics.Issues | Raccolta di DiagnosticEntry oggetti di uso pubblico |
DiagnosticEntry.Code | Stringa di codice corta per la riparazione |
DiagnosticEntry.Severity | DiagnosticSeverity valore di enum |
DiagnosticEntry.Message | Descrizione della riparazione leggibile dall’uomo |
SaveOptions.UseSharedStrings | Conservare stringhe in tabella di stringh condivise |
SaveOptions.ValidateBeforeSave | Eseguire la convalida interna prima di scrivere |
SaveOptions.CompactStyles | Rimuovere gli stili non utilizzati |