Работа с основните настройки на работната книга

Работа с основните настройки на работната книга

Работа с основните настройки на работната книга

Освен мрежата от работни листове, работната книга носи метаданни и конфигурация, които влияят върху това как 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”: заглавие, автор, компания и т.н.

- Да, нали? 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Да премахнете неисканите стилове
 Български