Trabalhar com as configurações do livro de trabalho básico
Trabalhar com as configurações do livro de trabalho básico
Além da grade de folha de trabalho, uma pasta de cálculo carrega metadados e configuração que afetam a forma como o Excel interpreta: o sistema de data, autor do documento, local e se as informações de recuperação são armazenadas. O Workbook A classe expõe estes através de Workbook.Settings, Workbook.Properties, e Workbook.LoadDiagnostics.O comportamento de salvamento é controlado através da SaveOptions.
Configurações do livro de trabalho
Workbook.Settings retorna um WorkbookSettings Objeto. Date1904 a) para o true para usar o sistema de data 1904 (comum em arquivos originários do MacOS Excel). Set Culture a uma CultureInfo instância para controlar número e data local de análise.
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);Propriedades do documento
Workbook.Properties retorna um WorkbookProperties objeto com sinais orientados para a exibição, tais como: ShowObjects e a) FilterPrivacy.Para a autoria e utilização de metadados descritivos. Workbook.DocumentProperties, que expõe a Title, Subject, Author, Keywords, Comments, Category, Company, e Manager como propriedades de cadeias diretas.
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);Diagnóstico de carga
Após carregar um livro de trabalho, verifique se o sistema é adequado. Workbook.LoadDiagnostics para descobrir se a biblioteca aplicou reparos. LoadDiagnostics.HasRepairs é: true se tiver sido efectuado pelo menos um reparo estrutural. LoadDiagnostics.HasDataLossRisk é: true se uma reparação descartou dados. Iterar LoadDiagnostics.Issues para aceder a cada um dos DiagnosticEntry objetos com: 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);
}Salvar opções
Workbook.Save(path, SaveOptions) aceita um SaveOptions Objeto a personalizar o resultado de salva. UseSharedStrings controla se os valores de cadeia são armazenados na tabela de cordas compartilhada (reduz o tamanho do arquivo para folhas com muitas cadeias repetidas). ValidateBeforeSave Executa a validação interna da pasta de trabalho antes da escrita. CompactStyles elimina estilos não utilizados. PreserveRecoveryMetadata Controla se os metadados de recuperação do Office são preservados.
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.");Dicas e melhores práticas
- Verificação
LoadDiagnostics.HasDataLossRiskapós o carregamento dos ficheiros reparados e avisar os utilizadores se os dados tiverem sido perdidos. - Set (s)
DocumentProperties.Authore a)Companypara arquivos partilhados com utilizadores finais estes aparecem no painel de informações dos ficheiros do Excel. UseSharedStrings = trueé benéfico para folhas com muitos valores de cadeia repetidos (por exemplo, colunas de status); tem um impacto mínimo em folha numericamente pesada.Date1904Deve corresponder entre o ficheiro de origem e destino para evitar a deriva do valor da data ao copiar células entre quadros.
Problemas comuns
| Emissão | Causa da morte | Correção |
|---|---|---|
LoadDiagnostics.Issues está vazio após a reparação. | Não foram necessários reparos ou TryRepair* não foi definido. | Set (s) TryRepairPackage = true e a) TryRepairXml = true em: LoadOptions |
DocumentProperties.Title não persistente | Utilização de: WorkbookProperties em vez de: DocumentProperties | Acesso a metadados de cadeia através do Workbook.DocumentProperties, não . Workbook.Properties |
WorkbookSaveException em salvação | Falha de validação com: ValidateBeforeSave = true | Inspecionar a mensagem de exceção; desativar validação para isolar os dados defeituosos |
FAQ
Qual é a diferença entre: WorkbookProperties e a) DocumentProperties?
WorkbookProperties (através da Workbook.Properties) contém sinais de exibição OOXML (por exemplo,. ShowObjects). DocumentProperties (através da Workbook.DocumentProperties) contém as cadeias de metadados do estilo Dublin-Core: Título, Autor, Empresa etc.
- Sim . CompactStyles Eliminar estilos que eu preciso?
CompactStyles remove apenas estilos que não são referenciados por qualquer célula, formato condicional ou estilo nomeado. Os estilOS em uso nunca são removidos.
Posso ler? LoadDiagnostics mesmo quando não houve tentativa de reparação?
Sim, quando não houve nenhuma tentativa de reparação. Issues coleção está vazia e ambos HasRepairs e a) HasDataLossRisk retorno false.
Resumo de referência da API
| Categoria / Propriedade | Descrição: |
|---|---|
Workbook.Settings | Retorno de lucros WorkbookSettings |
WorkbookSettings.Date1904 | Utilize o sistema de data 1904 |
WorkbookSettings.Culture | Local para análise de número/data |
Workbook.DocumentProperties | Autor, título e metadados da empresa |
Workbook.LoadDiagnostics | Relatório de reparação pós-carregamento |
LoadDiagnostics.HasRepairs | true se tiver sido aplicado qualquer reparação. |
LoadDiagnostics.HasDataLossRisk | true se reparar dados descartados |
LoadDiagnostics.Issues | Coleção de DiagnosticEntry objetos |
DiagnosticEntry.Code | Corta sequência de código de reparação |
DiagnosticEntry.Severity | DiagnosticSeverity valor de enum |
DiagnosticEntry.Message | Descrição da reparação legível pelo homem |
SaveOptions.UseSharedStrings | Armazenar cadeias de caracteres em uma tabela de cadeia compartilhada |
SaveOptions.ValidateBeforeSave | Execute a validação interna antes de escrever |
SaveOptions.CompactStyles | Remover estilos não utilizados |