Como trabalhar com as Configurações Principais da Pasta de Trabalho no .NET
Aspose.Cells FOSS para .NET expõe a configuração ao nível da pasta de trabalho através de Workbook.Settings (localidade e sistema de datas), Workbook.DocumentProperties (metadados do autor), Workbook.LoadDiagnostics (relatório de reparo) e SaveOptions (comportamento de salvamento). Instale com um único comando dotnet add package.
Guia passo a passo
Passo 1: Instalar o pacote
dotnet add package Aspose.Cells.FOSSPasso 2: Importar o namespace
using Aspose.Cells_FOSS;
using System.Globalization;Passo 3: Configurar WorkbookSettings
Workbook.Settings retorna um objeto WorkbookSettings. Defina Date1904 = true para arquivos originados no macOS que utilizam o sistema de datas de 1904. Defina Culture para controlar o local de análise de números e datas.
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);Etapa 4: Definir propriedades do documento
Workbook.DocumentProperties expõe Title, Subject, Author, Keywords, Comments, Category, Company e Manager como propriedades de string diretas.
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);Etapa 5: Usar SaveOptions
Workbook.Save(path, SaveOptions) aceita um objeto SaveOptions para personalizar a saída. Propriedades principais: UseSharedStrings (reduz o tamanho do arquivo para planilhas com strings repetidas), ValidateBeforeSave (executa validação antes da gravação) e CompactStyles (remove estilos não 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.");Etapa 6: Ler LoadDiagnostics após reparo
Depois de carregar com TryRepairPackage = true, verifique Workbook.LoadDiagnostics para ver se algum reparo foi aplicado.
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 Comuns e Soluções
WorkbookSaveException when ValidateBeforeSave = true. A pasta de trabalho contém uma inconsistência estrutural. Desative ValidateBeforeSave temporariamente para salvar e inspecionar o arquivo, então corrija o conteúdo problemático.
Propriedades do documento não visíveis no painel de informações de arquivo do Excel. Certifique-se de que está definindo propriedades em Workbook.DocumentProperties, não Workbook.Properties. Este último contém bandeiras de exibição, não cadeias de metadados.
Date1904 = true causa deslocamento dos valores de data. Date1904 altera a época usada para números seriais de datas. Defina-a apenas para true para arquivos que se originaram do Excel macOS com o sistema de datas de 1904 habilitado; misturar sistemas causa erros de diferença de 1462 dias.
Perguntas Frequentes
Qual é a diferença entre WorkbookSettings e WorkbookProperties?
WorkbookSettings (via Workbook.Settings) contém valores de configuração como Date1904 e Culture. WorkbookProperties (via Workbook.Properties) contém sinalizadores de exibição OOXML como ShowObjects. Strings de metadados do documento (Título, Autor, etc.) vivem em Workbook.DocumentProperties.
O CompactStyles alguma vez remove estilos que eu preciso?
Não. CompactStyles remove apenas estilos que não são referenciados por nenhuma célula ou regra de formatação na pasta de trabalho.
Posso ler LoadDiagnostics mesmo quando nenhuma reparação foi tentada?
Sim. A coleção Issues ficará vazia e tanto HasRepairs quanto HasDataLossRisk retornarão false.