Jak pracovat s hlavními nastaveními sešitu v .NET

Jak pracovat s hlavními nastaveními sešitu v .NET

Aspose.Cells FOSS pro .NET poskytuje konfiguraci na úrovni sešitu prostřednictvím Workbook.Settings (lokalizace a datumový systém), Workbook.DocumentProperties (metadata autora), Workbook.LoadDiagnostics (zpráva o opravě) a SaveOptions (chování při ukládání). Instalujte pomocí dotnet add package Aspose.Cells_FOSS.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

dotnet add package Aspose.Cells_FOSS

Krok 2: Importovat jmenný prostor

using Aspose.Cells_FOSS;
using System.Globalization;

Krok 3: Nastavení WorkbookSettings

Workbook.Settings vrací objekt WorkbookSettings. Nastavte Date1904 = true pro soubory vytvořené v macOS, které používají datumový systém 1904. Nastavte Culture pro řízení locale při parsování čísel a dat.

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);

Krok 4: Nastavit vlastnosti dokumentu

Workbook.DocumentProperties vystavuje Title, Subject, Author, Keywords, Comments, Category, Company a Manager jako přímé řetězcové vlastnosti.

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);

Krok 5: Použít SaveOptions

Workbook.Save(path, SaveOptions) přijímá objekt SaveOptions pro přizpůsobení výstupu. Klíčové vlastnosti: UseSharedStrings (snižuje velikost souboru u listů s opakujícími se řetězci), ValidateBeforeSave (provádí validaci před zápisem) a CompactStyles (odstraňuje nepoužívané styly).

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.");

Krok 6: Přečíst LoadDiagnostics po opravě

Po načtení pomocí TryRepairPackage = true zkontrolujte Workbook.LoadDiagnostics, zda byly provedeny jakékoli opravy.

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}");

Časté problémy a opravy

WorkbookSaveException když ValidateBeforeSave = true.
Sešit obsahuje strukturální nesrovnalost. Dočasně deaktivujte ValidateBeforeSave, abyste mohli soubor uložit a zkontrolovat, poté opravte problematický obsah.

Vlastnosti dokumentu nejsou viditelné v panelu Informace o souboru v Excelu. Ujistěte se, že nastavujete vlastnosti na Workbook.DocumentProperties, ne na Workbook.Properties. To druhé obsahuje příznaky zobrazení, ne řetězce metadat.

Date1904 = true způsobuje posun hodnot data.
Date1904 mění epochu používanou pro sériová čísla dat. Nastavte ji na true pouze pro soubory, které pocházejí z macOS Excelu se zapnutým systémem dat 1904; míchání systémů způsobuje chyby o 1462 dní.

Často kladené otázky

Jaký je rozdíl mezi WorkbookSettings a WorkbookProperties?

WorkbookSettings (prostřednictvím Workbook.Settings) obsahuje konfigurační hodnoty jako Date1904 a Culture. WorkbookProperties (prostřednictvím Workbook.Properties) obsahuje příznaky zobrazení OOXML, jako je ShowObjects. Řetězce metadat dokumentu (Název, Autor, atd.) jsou uloženy v Workbook.DocumentProperties.

Odstraňuje CompactStyles někdy styly, které potřebuji?

Ne. CompactStyles pouze odstraňuje styly, které nejsou odkazovány žádnou buňkou ani pravidlem formátování v sešitu.

Mohu číst LoadDiagnostics i když nebyl proveden žádný pokus o opravu?

Ano. Kolekce Issues bude prázdná a jak HasRepairs, tak HasDataLossRisk vrátí false.

Viz také

 Čeština