Як працювати з основними налаштуваннями робочої книги в .NET

Як працювати з основними налаштуваннями робочої книги в .NET

Aspose.Cells FOSS for .NET надає можливість налаштування на рівні робочої книги через Workbook.Settings (локаль та система дат), Workbook.DocumentProperties (метадані автора), Workbook.LoadDiagnostics (звіт про ремонт) та SaveOptions (поведінка збереження). Встановіть за допомогою dotnet add package Aspose.Cells_FOSS.

Покроковий посібник

Крок 1: Встановити пакет

dotnet add package Aspose.Cells_FOSS

Крок 2: Імпорт простору імен

using Aspose.Cells_FOSS;
using System.Globalization;

Крок 3: Налаштування WorkbookSettings

Workbook.Settings повертає об’єкт WorkbookSettings. Встановіть Date1904 = true для файлів, створених у macOS, які використовують систему дат 1904 року. Встановіть Culture для керування локаллю розбору чисел і дат.

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

Крок 4: Встановити властивості документа

Workbook.DocumentProperties надає Title, Subject, Author, Keywords, Comments, Category, Company та Manager як прямі рядкові властивості.

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

Крок 5: Використовуйте SaveOptions

Workbook.Save(path, SaveOptions) приймає об’єкт SaveOptions для налаштування вихідних даних. Ключові властивості: UseSharedStrings (зменшує розмір файлу для листів з повторюваними рядками), ValidateBeforeSave (виконує перевірку перед записом) та CompactStyles (видаляє невикористані стилі).

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

Крок 6: Прочитати LoadDiagnostics після ремонту

Після завантаження за допомогою TryRepairPackage = true, перевірте Workbook.LoadDiagnostics, щоб дізнатися, чи були застосовані будь‑які виправлення.

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

Поширені проблеми та виправлення

WorkbookSaveException коли ValidateBeforeSave = true.
Робоча книга містить структурну несумісність. Вимкніть ValidateBeforeSave тимчасово, щоб зберегти та перевірити файл, потім виправте проблемний вміст.

Властивості документа не відображаються у панелі «Інформація про файл» Excel.
Переконайтеся, що ви встановлюєте властивості на Workbook.DocumentProperties, а не на Workbook.Properties. Останній містить прапорці відображення, а не рядки метаданих.

Date1904 = true викликає зсув значень дат.
Date1904 змінює епоху, що використовується для серійних номерів дат. Встановлюйте його лише в true для файлів, які походять з macOS Excel з увімкненою системою дат 1904; змішування систем призводить до помилок на 1462 дні.

Поширені запитання

У чому різниця між WorkbookSettings та WorkbookProperties?

WorkbookSettings (через Workbook.Settings) містить значення конфігурації, такі як Date1904 і Culture. WorkbookProperties (через Workbook.Properties) містить прапорці відображення OOXML, такі як ShowObjects. Рядки метаданих документа (Title, Author тощо) розташовані в Workbook.DocumentProperties.

Чи коли‑небудь CompactStyles видаляє стилі, які мені потрібні?

Ні. CompactStyles лише видаляє стилі, які не використовуються жодною клітинкою або правилом форматування у робочій книзі.

Чи можу я прочитати LoadDiagnostics навіть коли ремонт не був здійснений?

Так. Колекція Issues буде порожньою, і обидва HasRepairs і HasDataLossRisk повернуть false.

Див. також

 Українська