Bekerja dengan Lapisan Model Workbook
Bekerja dengan Lapisan Model Workbook
Di bawah API yang berhadapan dengan pengguna, crate menyimpan lapisan model data polos yang mencerminkan paket XLSX: struktur nilai, model aturan, dan penyimpanan bersama. Sebagian besar aplikasi tidak pernah menyentuh tipe-tipe ini secara langsung, tetapi mereka muncul ketika Anda memeriksa workbook yang dimuat secara mendalam atau berkontribusi pada crate itu sendiri.
Tipe Nilai
ColorValue membawa komponen warna ARGB sebagai bidang a, r, g, b yang polos, dengan equals dan get_hash_code untuk perbandingan. Pemformatan angka pada tingkat model berada di NumberFormatValue, yang mendukung clone untuk menyalin definisi format antara catatan model.
Model Aturan
Aturan kualitas data memiliki kembar model: ValidationModel menampilkan areas, validation_type, alert_style, operator aturan, serta ekspresi formula1 / formula2 sebagai bidang; FormatConditionModel dan ConditionalFormattingModel memainkan peran yang sama untuk catatan pemformatan bersyarat. Ini dibangun dengan default dan diisi bidang demi bidang.
Penyimpanan String Bersama
File XLSX menyimpan teks sel yang berulang dalam tabel shared-strings. SharedStringRepository memodelkannya sebagai interner:
internmenambahkan string dan mengembalikan indeksnya (menggunakan kembali entri yang ada),try_get_valuemengubah indeks kembali menjadi stringnya,clearmengatur ulang repositori.
Diagnostics
DiagnosticBag mengumpulkan masalah terstruktur melalui add selama operasi model. Pada level API informasi yang sama sampai kepada Anda melalui LoadDiagnostics saat memuat buku kerja — lihat Ikhtisar Fitur.
Tips dan Praktik Terbaik
- Lebih baik gunakan API yang berorientasi pengguna (
Workbook,Worksheet, koleksi sel) — lapisan model tidak diperlukan untuk pekerjaan spreadsheet rutin. - Perlakukan struct model sebagai catatan data: buat dengan
default, kemudian atur bidang secara eksplisit. - Saat menyelidiki file yang rusak, gabungkan flag perbaikan
LoadOptionsdengan diagnostik yang dilaporkan pemuat.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| String berbagi duplikat | Melewati interner | Arahkan teks melalui SharedStringRepository.intern |
| Aturan validasi diabaikan | Bidang model tidak lengkap | Atur validation_type, operator, dan formula1 pada ValidationModel |
FAQ
Apakah saya perlu lapisan model untuk menulis spreadsheet?
Tidak. Workbook API mencakup pembuatan, penyuntingan, dan penyimpanan workbook; lapisan model mendasarinya.
Mengapa struct model menggunakan konstruktor default?
Mereka adalah catatan data sederhana yang mencerminkan struktur XLSX — default memberikan catatan kosong yang Anda isi bidang demi bidang.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
ColorValue | Catatan warna ARGB (a, r, g, b) |
NumberFormatValue.clone | Salin definisi format angka |
ValidationModel | Catatan aturan validasi (area, operator, formula) |
FormatConditionModel.default | Catatan aturan format bersyarat kosong |
SharedStringRepository.intern | Intern sebuah string, mengembalikan indeksnya |
SharedStringRepository.try_get_value | Menyelesaikan indeks yang diintern |
DiagnosticBag.add | Catat diagnostik terstruktur |