Trabajar con las configuraciones de libro de trabajo básico

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.HasDataLossRisk Después de cargar los archivos reparados y advertir a los usuarios si los datos pueden haber sido eliminados.
  • Sitio DocumentProperties.Author y Company para los archivos compartidos con los usuarios finales — estos aparecen en el panel de información del archivo de Excel.
  • UseSharedStrings = true Es 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.
  • Date1904 debe 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

ProblemasCausasFixado
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 DocumentPropertiesAcceso a los metadatos de la cadena mediante Workbook.DocumentProperties,No no Workbook.Properties
WorkbookSaveException En el salvamentoFalta de validación con ValidateBeforeSave = trueInspeccionar 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 / PropiedadDescripción
Workbook.Settingsregreso WorkbookSettings
WorkbookSettings.Date19041904 Sistema de fecha
WorkbookSettings.CultureLocal para número/data parsing
Workbook.DocumentPropertiesAutor, título y metadatos de la empresa
Workbook.LoadDiagnosticsReparación de carga post-load
LoadDiagnostics.HasRepairstrue Si se realizó una reparación
LoadDiagnostics.HasDataLossRisktrue Si se repara los datos perdidos
LoadDiagnostics.IssuesLa colección de DiagnosticEntry Objetos
DiagnosticEntry.CodeCorta corta corrente de código
DiagnosticEntry.SeverityDiagnosticSeverity Valor enum
DiagnosticEntry.MessageDescripción de la reparación humana-leable
SaveOptions.UseSharedStringsArreglar las líneas en la tabla de líneos compartidos
SaveOptions.ValidateBeforeSaveEjecuta la validación interna antes de escribir
SaveOptions.CompactStylesEliminar los estilos no utilizados

Ver también

 Español