Как да работим с основните настройки на работната книга в .NET

Как да работим с основните настройки на работната книга в .NET

Aspose.Cells FOSS за .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 временно, за да запазите и прегледате файла, след което поправете проблемното съдържание.

Свойствата на документа не се виждат в панела „File Info“ на 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.

Вижте също

 Български