Trabajar con las configuraciones de libro de trabajo básico
Trabajar con las configuraciones de libro de trabajo básico
Más allá de la red de hoja de trabajo, un libro de trabajos lleva metadatos y configuración que afecta a cómo Excel lo interpreta: el sistema de fecha, autor del documento, local, y si se almacenan las informaciones de recuperación. Workbook La clase exponerá estas Workbook.Settings, Workbook.Properties,y, Workbook.LoadDiagnostics.El comportamiento de la salvación se controla a través del SaveOptions.
Settings de libro de trabajo
Workbook.Settings Volver a WorkbookSettings Objeto: Sitio Date1904 para true para utilizar el sistema de fecha 1904 (común en archivos originados en macOS Excel). Culture Para a CultureInfo El número de control y la fecha para el parsillo 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);Propiedades del documento
Workbook.Properties Volver a WorkbookProperties Objetos con banderas orientadas a la pantalla como: ShowObjects y FilterPrivacy.Para el uso de metadatos y las descripciones Workbook.DocumentProperties,que exponen Title, Subject, Author, Keywords, Comments, Category, Company,y, Manager como propiedades de la línea directa.
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);Carga de diagnóstico
Después de cargar un libro, verifique Workbook.LoadDiagnostics Descubre si la biblioteca ha realizado reparaciones. LoadDiagnostics.HasRepairs Es el true Si se realizó al menos una reparación estructural. LoadDiagnostics.HasDataLossRisk Es el true Si se ha perdido un dato de reparación.Iterate LoadDiagnostics.Issues Acceso individual DiagnosticEntry Objetos con Code, Severity, Message, RepairApplied,y, 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 opciones
Workbook.Save(path, SaveOptions) acepta a SaveOptions - El objetivo de la personalización del saldo. UseSharedStrings controlar si los valores de la línea se almacenan en el tabla de las líneas compartidas (reducirá el tamaño del archivo para las hojas con muchas líneos repetidas). ValidateBeforeSave ejecuta la validación del libro de trabajo interno antes de escribir. CompactStyles Eliminar los estilos no utilizados. PreserveRecoveryMetadata Controlar si se conservan los metadatos de recuperación del Office.
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.");Consejos y mejores prácticas
- Verificar
LoadDiagnostics.HasDataLossRiskDespués de cargar los archivos reparados y advertir a los usuarios si los datos pueden haber sido eliminados. - Sitio
DocumentProperties.AuthoryCompanypara los archivos compartidos con los usuarios finales — estos aparecen en el panel de información del archivo de Excel. UseSharedStrings = trueEs beneficioso para las hojas con muchos valores de rango repetidos (por ejemplo, columnas de estado); tiene un impacto mínimo en las hoja numerico pesada.Date1904debe coincidir entre el archivo de fuente y objetivo para evitar la drift de valor de fecha al copiar las células entre los libros de trabajo.
Problemas comunes
| Problemas | Causas | Fixado |
|---|---|---|
LoadDiagnostics.Issues Es vacío después de la reparación. | No se necesitaron reparaciones o TryRepair* No se estableció | Sitio TryRepairPackage = true y TryRepairXml = true En el LoadOptions |
DocumentProperties.Title No persistió | Uso de WorkbookProperties En lugar de DocumentProperties | Acceso a los metadatos de la cadena mediante Workbook.DocumentProperties,No no Workbook.Properties |
WorkbookSaveException En el salvamento | Falta de validación con ValidateBeforeSave = true | Inspeccionar el mensaje de excepción; deshabilitar la validación para aislar los datos malos |
FAQ
¿Cuál es la diferencia entre WorkbookProperties y DocumentProperties?
WorkbookProperties (Vía de Workbook.Properties• Tiene las banderas de la pantalla OOXML (por ejemplo,. ShowObjects). DocumentProperties (Vía de Workbook.DocumentProperties) tiene las líneas de metadatos en estilo Dublin-Core: título, autor, compañía, etc.
¿Qué hace CompactStyles ¿Elimina los estilos que necesito?
CompactStyles Eliminar sólo los estilos que no se refieren por ninguna célula, formato condicional o estilo nombrado.
Puedo leer LoadDiagnostics ¿Aún cuando no se trató de reparación?
Si no se trató de reparación, la Issues La colección está vacía y ambos HasRepairs y HasDataLossRisk regreso false.
Sumación de referencia API
| Clase / Propiedad | Descripción |
|---|---|
Workbook.Settings | regreso WorkbookSettings |
WorkbookSettings.Date1904 | 1904 Sistema de fecha |
WorkbookSettings.Culture | Local para número/data parsing |
Workbook.DocumentProperties | Autor, título y metadatos de la empresa |
Workbook.LoadDiagnostics | Reparación de carga post-load |
LoadDiagnostics.HasRepairs | true Si se realizó una reparación |
LoadDiagnostics.HasDataLossRisk | true Si se repara los datos perdidos |
LoadDiagnostics.Issues | La colección de DiagnosticEntry Objetos |
DiagnosticEntry.Code | Corta corta corrente de código |
DiagnosticEntry.Severity | DiagnosticSeverity Valor enum |
DiagnosticEntry.Message | Descripción de la reparación humana-leable |
SaveOptions.UseSharedStrings | Arreglar las líneas en la tabla de líneos compartidos |
SaveOptions.ValidateBeforeSave | Ejecuta la validación interna antes de escribir |
SaveOptions.CompactStyles | Eliminar los estilos no utilizados |