Bekerja dengan Pengaturan Buku Kerja Inti
Bekerja dengan Pengaturan Buku Kerja Inti
Di luar kisi lembar kerja, sebuah buku kerja membawa metadata dan konfigurasi yang mempengaruhi bagaimana Excel menafsirkannya: sistem tanggal, penulis dokumen, lokasi, dan apakah informasi pemulihan disimpan. Workbook kelas mengekspos ini melalui Workbook.Settings, Workbook.Properties, dan Workbook.LoadDiagnostics. Menghemat perilaku dikendalikan melalui SaveOptions.
Pengaturan Buku Kerja
Workbook.Settings mengembalikan a WorkbookSettings objek. set Date1904 ke true untuk menggunakan sistem tanggal 1904 (umum dalam file yang berasal dari macOS Excel). Set Culture untuk a CultureInfo contoh untuk mengontrol nomor dan tanggal analisis lokal.
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);Properti dokumen
Workbook.Properties mengembalikan a WorkbookProperties objek dengan bendera berorientasi tampilan seperti: ShowObjects dan (b) FilterPrivacy.Untuk pengarang dan penggunaan metadata deskriptif Workbook.DocumentProperties, yang mengungkapkan Title, Subject, Author, Keywords, Comments, Category, Company, dan Manager sebagai sifat string langsung.
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);Diagnostik beban
Setelah memuat buku kerja, periksa Workbook.LoadDiagnostics untuk mengetahui apakah perpustakaan menerapkan perbaikan. LoadDiagnostics.HasRepairs adalah: true jika setidaknya satu perbaikan struktural dilakukan. LoadDiagnostics.HasDataLossRisk adalah: true jika perbaikan data yang dibuang. Iterate LoadDiagnostics.Issues untuk mengakses individu DiagnosticEntry objek dengan Code, Severity, Message, RepairApplied, dan 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);
}Simpan Pilihan
Workbook.Save(path, SaveOptions) menerima a SaveOptions keberatan untuk menyesuaikan output menyimpan. UseSharedStrings mengontrol apakah nilai string disimpan dalam tabel string yang dibagikan (mengurangi ukuran file untuk sheet dengan banyak string berulang). ValidateBeforeSave menjalankan validasi internal buku kerja sebelum menulis. CompactStyles menghapus gaya yang tidak digunakan. PreserveRecoveryMetadata mengontrol apakah metadata pemulihan Office dipertahankan.
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.");Tips dan Praktik Terbaik
- Periksa
LoadDiagnostics.HasDataLossRisksetelah memuat file yang diperbaiki dan memperingatkan pengguna jika data mungkin telah terjatuh. - Set (set)
DocumentProperties.Authordan (b)Companyuntuk file yang dibagikan dengan pengguna akhir ini muncul dalam panel info file Excel. UseSharedStrings = truebermanfaat untuk lembaran dengan banyak nilai string yang berulang (misalnya kolom status); memiliki dampak minimal pada lembar berjumlah besar.Date1904harus cocok antara file sumber dan target untuk menghindari drift nilai tanggal saat menyalin sel di antara buku kerja.
Masalah Umum
| Isu | Penyebabnya | Perbaiki |
|---|---|---|
LoadDiagnostics.Issues kosong setelah diperbaiki. | Tidak ada perbaikan yang diperlukan atau TryRepair* tidak diatur | Set (set) TryRepairPackage = true dan (b) TryRepairXml = true di dalam LoadOptions |
DocumentProperties.Title tidak berlanjut | Menggunakan WorkbookProperties sebagai pengganti DocumentProperties | Akses metadata string melalui Workbook.DocumentProperties, tidak Workbook.Properties |
WorkbookSaveException pada save | Gagal Validasi dengan ValidateBeforeSave = true | Periksa pesan pengecualian; matikan validasi untuk mengisolasi data yang salah |
FAQ
Apa bedanya antara WorkbookProperties dan (b) DocumentProperties?
WorkbookProperties (melalui: Workbook.Properties) berisi OOXML display flag (misalnya. ShowObjects). DocumentProperties (melalui: Workbook.DocumentProperties) berisi string metadata gaya Dublin-Core: Judul, Penulis, Perusahaan, dll.
Apakah CompactStyles Menghapus gaya yang saya butuhkan?
CompactStyles hanya menghapus gaya yang tidak dirujuk oleh sel, format bersyarat, atau gaya bernama. Gaya yang digunakan tidak pernah dihapus.
Bisakah aku membaca? LoadDiagnostics bahkan ketika tidak ada perbaikan yang dicoba?
Ya. saat tidak ada perbaikan yang dicoba Issues koleksi kosong dan keduanya HasRepairs dan (b) HasDataLossRisk kembali false.
Ringkasan Referensi API
| Kelas / Properti | Deskripsi |
|---|---|
Workbook.Settings | Pengembalian WorkbookSettings |
WorkbookSettings.Date1904 | Gunakan sistem tanggal 1904 |
WorkbookSettings.Culture | Lokal untuk analisis nomor/tanggal |
Workbook.DocumentProperties | Penulis, judul, metadata perusahaan |
Workbook.LoadDiagnostics | Laporan perbaikan setelah pengisian |
LoadDiagnostics.HasRepairs | true jika ada perbaikan yang dilakukan. |
LoadDiagnostics.HasDataLossRisk | true jika data yang dibuang diperbaiki |
LoadDiagnostics.Issues | Pengumpulan DiagnosticEntry objek-objek |
DiagnosticEntry.Code | Keterangan kode perbaikan singkat |
DiagnosticEntry.Severity | DiagnosticSeverity nilai enum |
DiagnosticEntry.Message | Deskripsi perbaikan yang dapat dibaca oleh manusia |
SaveOptions.UseSharedStrings | Menyimpan string dalam tabel string bersama |
SaveOptions.ValidateBeforeSave | Jalankan validasi internal sebelum menulis |
SaveOptions.CompactStyles | Hapus gaya yang tidak digunakan |