Bekerja dengan Pengaturan Buku Kerja Inti

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.HasDataLossRisk setelah memuat file yang diperbaiki dan memperingatkan pengguna jika data mungkin telah terjatuh.
  • Set (set) DocumentProperties.Author dan (b) Company untuk file yang dibagikan dengan pengguna akhir ini muncul dalam panel info file Excel.
  • UseSharedStrings = true bermanfaat untuk lembaran dengan banyak nilai string yang berulang (misalnya kolom status); memiliki dampak minimal pada lembar berjumlah besar.
  • Date1904 harus cocok antara file sumber dan target untuk menghindari drift nilai tanggal saat menyalin sel di antara buku kerja.

Masalah Umum

IsuPenyebabnyaPerbaiki
LoadDiagnostics.Issues kosong setelah diperbaiki.Tidak ada perbaikan yang diperlukan atau TryRepair* tidak diaturSet (set) TryRepairPackage = true dan (b) TryRepairXml = true di dalam LoadOptions
DocumentProperties.Title tidak berlanjutMenggunakan WorkbookProperties sebagai pengganti DocumentPropertiesAkses metadata string melalui Workbook.DocumentProperties, tidak Workbook.Properties
WorkbookSaveException pada saveGagal Validasi dengan ValidateBeforeSave = truePeriksa 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 / PropertiDeskripsi
Workbook.SettingsPengembalian WorkbookSettings
WorkbookSettings.Date1904Gunakan sistem tanggal 1904
WorkbookSettings.CultureLokal untuk analisis nomor/tanggal
Workbook.DocumentPropertiesPenulis, judul, metadata perusahaan
Workbook.LoadDiagnosticsLaporan perbaikan setelah pengisian
LoadDiagnostics.HasRepairstrue jika ada perbaikan yang dilakukan.
LoadDiagnostics.HasDataLossRisktrue jika data yang dibuang diperbaiki
LoadDiagnostics.IssuesPengumpulan DiagnosticEntry objek-objek
DiagnosticEntry.CodeKeterangan kode perbaikan singkat
DiagnosticEntry.SeverityDiagnosticSeverity nilai enum
DiagnosticEntry.MessageDeskripsi perbaikan yang dapat dibaca oleh manusia
SaveOptions.UseSharedStringsMenyimpan string dalam tabel string bersama
SaveOptions.ValidateBeforeSaveJalankan validasi internal sebelum menulis
SaveOptions.CompactStylesHapus gaya yang tidak digunakan
 Bahasa Indonesia