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_FOSSKrok 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.