Работа с настройками основных рабочих книг

Работа с настройками основных рабочих книг

Работа с настройками основных рабочих книг

Помимо сетки рабочих листов, в рабочей книге содержатся метаданные и конфигурация, которые влияют на то, как Excel интерпретирует ее: систему дат, автора документа, локализуемость и хранится ли информация о восстановлении. Workbook класс выставляет их через Workbook.Settings, Workbook.Properties, и Workbook.LoadDiagnostics.Поведение спасателей контролируется через: SaveOptions.


Настройки рабочей книги

Workbook.Settings возвращает a WorkbookSettings Объект. Date1904 в) к true использовать систему дат 1904 (обычно используется в файлах, исходящих из macOS Excel). Culture к а CultureInfo В данном случае, это будет номер и дата анализа локали.

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

Свойства документа

Workbook.Properties возвращает a WorkbookProperties объект с ориентированными на дисплей флагами, такими как: ShowObjects и в том числе: FilterPrivacy.Для авторства и использования описательных метаданных . Workbook.DocumentProperties, что показывает: Title, Subject, Author, Keywords, Comments, Category, Company, и Manager как свойства прямых струн.

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

Диагностика нагрузки

После загрузки рабочего листа проверьте: Workbook.LoadDiagnostics чтобы узнать, провела ли библиотека какие-либо ремонтные работы. LoadDiagnostics.HasRepairs - это … true если был проведен хотя бы один ремонт. LoadDiagnostics.HasDataLossRisk - это … true если ремонт отбрасывает данные. Итерация LoadDiagnostics.Issues для доступа к индивидуальным DiagnosticEntry объекты с Code, Severity, Message, RepairApplied, и 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);
}

Сохранить параметры

Workbook.Save(path, SaveOptions) принимает SaveOptions не соглашается на адаптацию выхода сбережения. UseSharedStrings контролирует, хранятся ли значения строк в раздельной таблице струн (сокращает размер файла для листов с многочисленными повторяющимися строками). ValidateBeforeSave запускает внутреннюю проверку рабочей книги перед написанием. CompactStyles устраняет неиспользуемые стили. PreserveRecoveryMetadata контролирует сохранность метаданных восстановления Office.

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

Советы и лучшие практики

  • Проверка . LoadDiagnostics.HasDataLossRisk после загрузки отремонтированных файлов и предупреждает пользователей, если данные могут быть потеряны.
  • Набор DocumentProperties.Author и в том числе: Company для файлов, которые делятся с конечными пользователями они появляются в панели информации о файлах Excel.
  • UseSharedStrings = true полезен для листов с многочисленными повторяющимися значениями строки (например, колонки состояния); он имеет минимальное влияние на листы с большим количеством данных.
  • Date1904 должны совпадать между исходным и целевым файлами, чтобы избежать дрейфа значения даты при копировании ячеек между рабочими книгами.

Общие проблемы

ВыпускПричина .Устранить
LoadDiagnostics.Issues пуста после ремонта.Не требовались ремонтные работы или TryRepair* не установлен.Набор TryRepairPackage = true и в том числе: TryRepairXml = true в . LoadOptions
DocumentProperties.Title не упорствующий.Использование: WorkbookProperties вместо: DocumentPropertiesДоступ к метаданным строки через: Workbook.DocumentProperties, нет . Workbook.Properties
WorkbookSaveException на сохраненииНеудача проверки с ValidateBeforeSave = trueПроверьте сообщение об исключении; отключите проверку для выделения неисправительных данных.

FAQ

В чем разница между WorkbookProperties и в том числе: DocumentProperties?

WorkbookProperties (посредством: Workbook.Properties) содержит знаки отображения OOXML (например,. ShowObjects). DocumentProperties (посредством: Workbook.DocumentProperties) содержит в себе метаданные строки типа Dublin-Core: Title, Author, Company и т.д.

- Да , да . CompactStyles Удалить стили, которые мне нужны?

CompactStyles удаляет только стили, на которые не ссылается ни одна ячейка, условное формат или названный стиль. Используемые стилы никогда не удаляются.

Можно я прочитаю? LoadDiagnostics даже если не было попыток его восстановить?

Да, когда не было попыток ремонта. Issues коллекция пуста и оба HasRepairs и в том числе: HasDataLossRisk возвращение false.


Справочное резюме API

Класс / имуществоОписание:
Workbook.SettingsВозвратные средства WorkbookSettings
WorkbookSettings.Date1904Используйте систему дат 1904 года.
WorkbookSettings.CultureЛокальный для анализа числа/дата
Workbook.DocumentPropertiesАвтор, название, метаданные компании
Workbook.LoadDiagnosticsОтчет о ремонте после погрузки
LoadDiagnostics.HasRepairstrue если был произведен ремонт.
LoadDiagnostics.HasDataLossRisktrue если исправление отброшенных данных
LoadDiagnostics.IssuesСбор DiagnosticEntry предметы
DiagnosticEntry.CodeКод по ремонту:
DiagnosticEntry.SeverityDiagnosticSeverity значение enum
DiagnosticEntry.MessageОписание ремонта, читаемое человеком.
SaveOptions.UseSharedStringsСохранение строк в раздельной таблице струн
SaveOptions.ValidateBeforeSaveЗапустить внутреннюю проверку до записи .
SaveOptions.CompactStylesУдалить неиспользуемые стили
 Русский