Cara Bekerja dengan Tetapan Teras Buku Kerja dalam .NET
Aspose.Cells FOSS untuk .NET mendedahkan konfigurasi peringkat buku kerja melalui Workbook.Settings (lokal dan sistem tarikh), Workbook.DocumentProperties (metadata pengarang), Workbook.LoadDiagnostics (laporan pembaikan), dan SaveOptions (kelakuan simpan). Pasang dengan dotnet add package Aspose.Cells_FOSS.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
dotnet add package Aspose.Cells_FOSSLangkah 2: Import Namespace
using Aspose.Cells_FOSS;
using System.Globalization;Langkah 3: Konfigurasikan WorkbookSettings
Workbook.Settings mengembalikan objek WorkbookSettings. Tetapkan Date1904 = true untuk fail yang berasal dari macOS yang menggunakan sistem tarikh 1904. Tetapkan Culture untuk mengawal locale penguraian nombor dan tarikh.
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);Langkah 4: Tetapkan Sifat Dokumen
Workbook.DocumentProperties mendedahkan Title, Subject, Author, Keywords, Comments, Category, Company, dan Manager sebagai sifat rentetan langsung.
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);Langkah 5: Gunakan SaveOptions
Workbook.Save(path, SaveOptions) menerima objek SaveOptions untuk menyesuaikan output. Sifat utama: UseSharedStrings (mengurangkan saiz fail untuk helaian dengan rentetan berulang), ValidateBeforeSave (menjalankan pengesahan sebelum menulis), dan CompactStyles (mengeluarkan gaya yang tidak digunakan).
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.");Langkah 6: Baca LoadDiagnostics Selepas Pembaikan
Selepas memuatkan dengan TryRepairPackage = true, periksa Workbook.LoadDiagnostics untuk melihat sama ada sebarang pembaikan telah diterapkan.
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}");Isu Umum dan Penyelesaian
WorkbookSaveException apabila ValidateBeforeSave = true.
Buku kerja mengandungi ketidakselarasan struktur. Lumpuhkan ValidateBeforeSave buat sementara untuk menyimpan dan memeriksa fail, kemudian betulkan kandungan yang bermasalah.
Sifat dokumen tidak kelihatan dalam panel Maklumat Fail Excel.
Pastikan anda menetapkan sifat pada Workbook.DocumentProperties, bukan Workbook.Properties. Yang terakhir menyimpan bendera paparan, bukan rentetan metadata.
Date1904 = true menyebabkan nilai tarikh beralih.
Date1904 mengubah epoch yang digunakan untuk nombor siri tarikh. Hanya tetapkan kepada true untuk fail yang berasal daripada macOS Excel dengan sistem tarikh 1904 diaktifkan; mencampur sistem menyebabkan ralat 1462 hari.
Soalan Lazim
Apakah perbezaan antara WorkbookSettings dan WorkbookProperties?
WorkbookSettings (via Workbook.Settings) menyimpan nilai konfigurasi seperti Date1904 dan Culture. WorkbookProperties (via Workbook.Properties) menyimpan bendera paparan OOXML seperti ShowObjects. Rentetan metadata dokumen (Tajuk, Pengarang, dll.) berada di Workbook.DocumentProperties.
Adakah CompactStyles pernah mengeluarkan gaya yang saya perlukan?
Tidak. CompactStyles hanya mengeluarkan gaya yang tidak dirujuk oleh mana-mana sel atau peraturan format dalam buku kerja.
Bolehkah saya membaca LoadDiagnostics walaupun tiada pembaikan dicuba?
Ya. Koleksi Issues akan kosong dan HasRepairs serta HasDataLossRisk akan mengembalikan false.