Jak pracować z podstawowymi ustawieniami skoroszytu w .NET

Jak pracować z podstawowymi ustawieniami skoroszytu w .NET

Aspose.Cells FOSS dla .NET udostępnia konfigurację na poziomie skoroszytu poprzez Workbook.Settings (lokalizacja i system dat), Workbook.DocumentProperties (metadane autora), Workbook.LoadDiagnostics (raport naprawczy) oraz SaveOptions (zachowanie zapisu). Zainstaluj za pomocą jednego polecenia dotnet add package.

Przewodnik krok po kroku

Krok 1: Zainstaluj pakiet

dotnet add package Aspose.Cells.FOSS

Krok 2: Zaimportuj przestrzeń nazw

using Aspose.Cells_FOSS;
using System.Globalization;

Krok 3: Skonfiguruj WorkbookSettings

Workbook.Settings zwraca obiekt WorkbookSettings. Ustaw Date1904 = true dla plików pochodzących z macOS, które używają systemu daty 1904. Ustaw Culture, aby kontrolować lokalizację parsowania liczb i dat.

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

Krok 4: Ustaw właściwości dokumentu

Workbook.DocumentProperties udostępnia Title, Subject, Author, Keywords, Comments, Category, Company i Manager jako bezpośrednie właściwości typu string.

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

Krok 5: Użyj SaveOptions

Workbook.Save(path, SaveOptions) przyjmuje obiekt SaveOptions, aby dostosować wyjście. Kluczowe właściwości: UseSharedStrings (zmniejsza rozmiar pliku dla arkuszy z powtarzającymi się ciągami), ValidateBeforeSave (uruchamia walidację przed zapisem) oraz CompactStyles (usuwa nieużywane style).

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

Krok 6: Odczytaj LoadDiagnostics po naprawie

Po załadowaniu przy użyciu TryRepairPackage = true, sprawdź Workbook.LoadDiagnostics, aby zobaczyć, czy zastosowano jakiekolwiek naprawy.

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

Typowe problemy i rozwiązania

WorkbookSaveException when ValidateBeforeSave = true. Skoroszyt zawiera niespójność strukturalną. Wyłącz ValidateBeforeSave tymczasowo, aby zapisać i sprawdzić plik, a następnie naprawić problematyczną zawartość.

Właściwości dokumentu nie są widoczne w panelu Informacje o pliku Excel. Upewnij się, że ustawiasz właściwości na Workbook.DocumentProperties, nie Workbook.Properties. To drugie przechowuje flagi wyświetlania, a nie ciągi metadanych.

Date1904 = true powoduje przesunięcie wartości dat. Date1904 zmienia epokę używaną dla numerów seryjnych dat. Ustawiaj ją tylko na true dla plików pochodzących z macOS Excel z włączonym systemem dat 1904; mieszanie systemów powoduje błędy o 1462 dni.

Najczęściej zadawane pytania

Jaka jest różnica między WorkbookSettings a WorkbookProperties?

WorkbookSettings (przez Workbook.Settings) przechowuje wartości konfiguracyjne takie jak Date1904 i Culture. WorkbookProperties (przez Workbook.Properties) przechowuje flagi wyświetlania OOXML, takie jak ShowObjects. Ciągi metadanych dokumentu (Tytuł, Autor itp.) znajdują się w Workbook.DocumentProperties.

Czy CompactStyles kiedykolwiek usuwa style, które są mi potrzebne?

Nie. CompactStyles usuwa tylko style, które nie są odwoływane przez żadną komórkę ani regułę formatowania w skoroszycie.

Czy mogę odczytać LoadDiagnostics, nawet jeśli nie podjęto próby naprawy?

Tak. Zbiór Issues będzie pusty, a zarówno HasRepairs, jak i HasDataLossRisk zwrócą false.

Zobacz także

 Polski