Работа с настройками основных рабочих книг
Работа с настройками основных рабочих книг
Помимо сетки рабочих листов, в рабочей книге содержатся метаданные и конфигурация, которые влияют на то, как 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.HasRepairs | true если был произведен ремонт. |
LoadDiagnostics.HasDataLossRisk | true если исправление отброшенных данных |
LoadDiagnostics.Issues | Сбор DiagnosticEntry предметы |
DiagnosticEntry.Code | Код по ремонту: |
DiagnosticEntry.Severity | DiagnosticSeverity значение enum |
DiagnosticEntry.Message | Описание ремонта, читаемое человеком. |
SaveOptions.UseSharedStrings | Сохранение строк в раздельной таблице струн |
SaveOptions.ValidateBeforeSave | Запустить внутреннюю проверку до записи . |
SaveOptions.CompactStyles | Удалить неиспользуемые стили |