Cómo trabajar con la configuración central del libro de trabajo en .NET
Aspose.Cells FOSS for .NET expone la configuración a nivel de libro de trabajo a través de Workbook.Settings (configuración regional y sistema de fechas), Workbook.DocumentProperties (metadatos del autor), Workbook.LoadDiagnostics (informe de reparación) y SaveOptions (comportamiento de guardado). Instale con dotnet add package Aspose.Cells_FOSS.
Guía paso a paso
Paso 1: Instalar el paquete
dotnet add package Aspose.Cells_FOSSPaso 2: Importar el espacio de nombres
using Aspose.Cells_FOSS;
using System.Globalization;Paso 3: Configurar WorkbookSettings
Workbook.Settings devuelve un objeto WorkbookSettings. Establezca Date1904 = true para archivos originados en macOS que utilizan el sistema de fechas 1904. Establezca Culture para controlar la configuración regional de análisis de números y fechas.
using Aspose.Cells_FOSS;
using System.Globalization;
var wb = new Workbook();
wb.Settings.Date1904 = false;
wb.Settings.Culture = new CultureInfo("en-US");
wb.Worksheets[0].Cells["A1"].PutValue("Settings configured");
wb.Save("settings.xlsx");
var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);Paso 4: Establecer propiedades del documento
Workbook.DocumentProperties expone Title, Subject, Author, Keywords, Comments, Category, Company y Manager como propiedades de cadena directas.
using Aspose.Cells_FOSS;
var wb = new Workbook();
wb.DocumentProperties.Title = "Quarterly Report";
wb.DocumentProperties.Author = "Reporting Team";
wb.DocumentProperties.Company = "Contoso Ltd";
wb.DocumentProperties.Keywords = "quarterly, sales, 2026";
wb.Save("properties.xlsx");
var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);Paso 5: Usar SaveOptions
Workbook.Save(path, SaveOptions) acepta un objeto SaveOptions para personalizar la salida. Propiedades clave: UseSharedStrings (reduce el tamaño del archivo para hojas con cadenas repetidas), ValidateBeforeSave (ejecuta la validación antes de escribir) y CompactStyles (elimina estilos no utilizados).
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 50; i++)
ws.Cells[i, 0].PutValue("Repeated text");
var opts = new SaveOptions
{
UseSharedStrings = true,
ValidateBeforeSave = true,
CompactStyles = true,
};
wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");Paso 6: Leer LoadDiagnostics después de la reparación
Después de cargar con TryRepairPackage = true, verifica Workbook.LoadDiagnostics para ver si se aplicaron reparaciones.
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;
Console.WriteLine("HasRepairs: " + diag.HasRepairs);
Console.WriteLine("HasDataLossRisk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
Console.WriteLine($" [{entry.Severity}] {entry.Code}: {entry.Message}");Problemas comunes y soluciones
WorkbookSaveException cuando ValidateBeforeSave = true.
El libro de trabajo contiene una inconsistencia estructural. Desactive ValidateBeforeSave temporalmente para guardar e inspeccionar el archivo, luego corrija el contenido problemático.
Propiedades del documento no visibles en el panel de Información de archivo de Excel.
Asegúrese de establecer las propiedades en Workbook.DocumentProperties, no en Workbook.Properties. Este último contiene indicadores de visualización, no cadenas de metadatos.
Date1904 = true causa desplazamiento de los valores de fecha.
Date1904 cambia la época utilizada para los números de serie de fechas. Sólo configúrelo en true para archivos que se originaron en Excel de macOS con el sistema de fechas 1904 habilitado; mezclar sistemas provoca errores de 1462 días.
Preguntas Frecuentes
¿Cuál es la diferencia entre WorkbookSettings y WorkbookProperties?
WorkbookSettings (a través de Workbook.Settings) contiene valores de configuración como Date1904 y Culture. WorkbookProperties (a través de Workbook.Properties) contiene banderas de visualización OOXML como ShowObjects. Las cadenas de metadatos del documento (Título, Autor, etc.) se encuentran en Workbook.DocumentProperties.
¿CompactStyles alguna vez elimina estilos que necesito?
No. CompactStyles solo elimina los estilos que no están referenciados por ninguna celda o regla de formato en el libro de trabajo.
¿Puedo leer LoadDiagnostics incluso cuando no se intentó ninguna reparación?
Sí. La colección Issues estará vacía y tanto HasRepairs como HasDataLossRisk devolverán false.