Bekerja dengan Manajemen Spreadsheet

Bekerja dengan Manajemen Spreadsheet

Bekerja dengan Manajemen Spreadsheet

Manajemen spreadsheet mencakup permukaan objek sehari-hari dari crate: lembar kerja, koleksi sel, nilai bertipe, formula, gaya, dan fitur struktural yang membuat buku kerja dapat digunakan. Titik masuknya selalu berupa Workbook.


Worksheets

Lembar dikelola melalui koleksi lembar kerja buku kerja — akses baca melalui get_worksheets, perubahan melalui get_worksheets_mut. Lembar diakses dengan indeks (get(0)) atau nama (get_by_name), diubah namanya dengan set_name, dan ditambahkan dengan add_worksheet:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Data")?;
}

Akses Sel dan Nilai Bertipe

Sel diakses dengan gaya A1 atau secara numerik. get_by_index(row, column) cocok untuk tata letak yang dihasilkan:

let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
}

Saat membaca kembali, display_string_value mengembalikan teks tampilan dan value_type melaporkan tipe yang disimpan.


Formula dengan Hasil Cache

cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
    .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;

Nilai cache adalah apa yang ditampilkan Excel sebelum perhitungan ulang pertama — sediakan nilai tersebut agar pengguna file melihat hasil yang benar secara langsung.


Styling

CellStyle menggabungkan Font, Fill, dan Borders; StyleFlag mengontrol aspek gaya mana yang diterapkan pembaruan, sehingga format yang ada dipertahankan di mana Anda tidak menimpanya. NumberFormat mengatur cara nilai ditampilkan.


Pengaturan Halaman dan Navigasi

PageSetup mengelola tata letak cetak: PaperSizeType, PageOrientationType, dan margin. FreezePane menjaga baris header tetap terlihat saat menggulir, dan visibilitas baris serta kolom menggunakan VisibilityType.


Struktur: Tabel, Nama, Komentar, Tautan Hiper

  • ListObject mengubah rentang menjadi tabel terstruktur dengan gaya TableStyleType dan baris total TotalsCalculation.
  • DefinedName dan DefinedNameCollection mengelola rentang bernama.
  • Comment / CommentCollection dan Hyperlink / HyperlinkCollection mencakup anotasi dan navigasi.

Tips dan Praktik Terbaik

  • Simpan peminjaman mutable (get_worksheets_mut, get_cells_mut) di dalam blok scope; simpan workbook setelah blok ditutup.
  • Gunakan get_by_index untuk loop dan tata letak yang dihasilkan; nama A1 untuk posisi tetap.
  • Terapkan gaya dengan StyleFlag sehingga pemformatan yang tidak terkait tidak terpengaruh.
  • Beri nama rentang penting dengan DefinedName alih-alih mengkodekan alamat secara keras.

Masalah Umum

MasalahPenyebabPerbaikan
Kesalahan peminjaman saat menyimpan workbookPeminjaman worksheet mutable masih hidupTutup blok lingkup sebelum memanggil save
Formula menunjukkan 0 di ExcelTidak ada nilai cache yang disediakanGunakan put_formula_with_cached_value dengan hasil yang diharapkan
Lembar tidak ditemukanNama tidak cocokAlamat berdasarkan indeks atau periksa ejaan set_name

FAQ

Bagaimana cara menambahkan lembar kerja kedua?

Panggil add_worksheet pada buku kerja, lalu ambil melalui koleksi lembar kerja dengan indeks atau nama.

Apakah saya dapat membaca dan menulis dalam satu proses?

Ya — muat dengan Workbook::load_xlsx, ubah melalui get_worksheets_mut, dan save ke jalur yang sama atau baru.

Apakah setter bertipe mengonversi nilai?

Tidak ada konversi yang diterapkan: setiap setter put_value_* menyimpan tipe aslinya; display_string_value menampilkan teks tampilan saat dibaca.


API Reference Ringkasan

Kelas/MetodeDeskripsi
Workbook.add_worksheetTambahkan lembar ke buku kerja
Worksheet.set_nameGanti nama lembar
Worksheet.get_cells_mutKoleksi sel Mutable
CellMut.put_value_stringPengatur string bertipe
CellMut.put_formula_with_cached_valueRumus plus hasil yang di-cache
CellStylePemformatan font, isi, dan batas
StyleFlagMemilih aspek gaya yang diterapkan
PageSetupCetak dan tata letak halaman
ListObjectTabel terstruktur

Lihat Juga

 Bahasa Indonesia