Trabalhar com as configurações do livro de trabalho básico

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.HasDataLossRisk após o carregamento dos ficheiros reparados e avisar os utilizadores se os dados tiverem sido perdidos.
  • Set (s) DocumentProperties.Author e a) Company para 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.
  • Date1904 Deve 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ãoCausa da morteCorreçã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 persistenteUtilização de: WorkbookProperties em vez de: DocumentPropertiesAcesso a metadados de cadeia através do Workbook.DocumentProperties, não . Workbook.Properties
WorkbookSaveException em salvaçãoFalha de validação com: ValidateBeforeSave = trueInspecionar 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 / PropriedadeDescrição:
Workbook.SettingsRetorno de lucros WorkbookSettings
WorkbookSettings.Date1904Utilize o sistema de data 1904
WorkbookSettings.CultureLocal para análise de número/data
Workbook.DocumentPropertiesAutor, título e metadados da empresa
Workbook.LoadDiagnosticsRelatório de reparação pós-carregamento
LoadDiagnostics.HasRepairstrue se tiver sido aplicado qualquer reparação.
LoadDiagnostics.HasDataLossRisktrue se reparar dados descartados
LoadDiagnostics.IssuesColeção de DiagnosticEntry objetos
DiagnosticEntry.CodeCorta sequência de código de reparação
DiagnosticEntry.SeverityDiagnosticSeverity valor de enum
DiagnosticEntry.MessageDescrição da reparação legível pelo homem
SaveOptions.UseSharedStringsArmazenar cadeias de caracteres em uma tabela de cadeia compartilhada
SaveOptions.ValidateBeforeSaveExecute a validação interna antes de escrever
SaveOptions.CompactStylesRemover estilos não utilizados
 Português