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 naprawy) oraz SaveOptions (zachowanie zapisu). Zainstaluj przy użyciu dotnet add package Aspose.Cells_FOSS.
Przewodnik krok po kroku
Krok 1: Zainstaluj pakiet
dotnet add package Aspose.Cells.FOSSKrok 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 oraz 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) akceptuje obiekt SaveOptions, aby dostosować wyjście. Kluczowe właściwości: UseSharedStrings (zmniejsza rozmiar pliku dla arkuszy z powtarzającymi się ciągami), ValidateBeforeSave (wykonywana jest walidacja 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 programu Excel. Upewnij się, że ustawiasz właściwości na Workbook.DocumentProperties, nie Workbook.Properties. Ten drugi 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. Ustaw 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. Kolekcja Issues będzie pusta, a zarówno HasRepairs, jak i HasDataLossRisk zwrócą false.