Elektronik Tablo Yönetimiyle Çalışma
Elektronik Tablo Yönetimiyle Çalışma
Elektronik tablo yönetimi, crate’in günlük nesne yüzeyini kapsar: çalışma sayfaları, hücre koleksiyonları, tipli değerler, formüller, stil ve bir çalışma kitabını kullanılabilir kılan yapısal özellikler. Giriş noktası her zaman bir Workbook olur.
Worksheets
Sayfalar, çalışma kitabının çalışma sayfası koleksiyonları aracılığıyla yönetilir — okuma erişimi get_worksheets ile, değişiklik get_worksheets_mut ile yapılır. Sayfalara indeks (get(0)) veya ad (get_by_name) ile ulaşılır, set_name ile yeniden adlandırılır ve add_worksheet ile eklenir:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Hücre Erişimi ve Tipli Değerler
Hücreler A1 stili ya da sayısal olarak adreslenir. get_by_index(row, column), oluşturulan düzenler için uygundur:
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}"))?;
}Geri okurken, display_string_value görüntü metnini döndürür ve value_type saklanan tipi raporlar.
Önbelleğe Alınmış Sonuçlu Formüller
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Önbelleğe alınan değer, Excel’in ilk yeniden hesaplamasından önce gösterdiği şeydir — dosyanın kullanıcılarının doğru sonuçları hemen görmesi için bunu sağlayın.
Styling
CellStyle Font, Fill ve Borders öğelerini toplar; StyleFlag, bir güncellemenin hangi stil yönlerini uyguladığını kontrol eder, böylece geçersiz kılmadığınız yerde mevcut biçimlendirme korunur. NumberFormat, değerlerin nasıl görüntülendiğini yönetir.
Sayfa Ayarı ve Gezinti
PageSetup, baskı düzenini yönetir: PaperSizeType, PageOrientationType ve kenar boşlukları. FreezePane, kaydırma sırasında başlık satırlarının görünür kalmasını sağlar ve satır ve sütun görünürlüğü VisibilityType kullanır.
Yapı: Tablolar, Adlar, Yorumlar, Köprüler
ListObject, bir aralığıTableStyleTypestiline sahip yapılandırılmış bir tabloya veTotalsCalculationtoplam satırına dönüştürür.DefinedNameveDefinedNameCollectionadlandırılmış aralıkları yönetir.Comment/CommentCollectionveHyperlink/HyperlinkCollectionek açıklama ve gezinmeyi kapsar.
İpuçları ve En İyi Uygulamalar
- Değiştirilebilir ödünç almaları (
get_worksheets_mut,get_cells_mut) bir kapsam bloğu içinde tutun; blok kapandıktan sonra çalışma kitabını kaydedin. - Döngüler ve oluşturulan düzenler için
get_by_indexkullanın; sabit konumlar için A1 adlarını. - Alakası olmayan biçimlendirme etkilenmesin diye stilleri bir
StyleFlagile uygulayın. - Adresleri sabit kodlamak yerine önemli aralıkları
DefinedNameile adlandırın.
Sık Karşılaşılan Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
| Çalışma kitabını kaydederken borç alma hatası | Değiştirilebilir çalışma sayfası borcu hâlâ aktif | save çağırmadan önce kapsam bloğunu kapatın |
| Formül Excel’de 0 gösteriyor | Önbelleğe alınmış değer sağlanmadı | Beklenen sonuçla put_formula_with_cached_value kullanın |
| Sayfa bulunamadı | İsim uyumsuzluğu | İndeks ile adresle veya set_name yazımını kontrol edin |
FAQ
İkinci bir çalışma sayfasını nasıl eklerim?
Çalışma kitabı üzerinde add_worksheet çağırın, ardından çalışma sayfası koleksiyonundan indeks ya da ad ile alın.
Aynı geçişte okuyup yazabilir miyim?
Evet — Workbook::load_xlsx ile yükleyin, get_worksheets_mut ile değiştirin ve save ile aynı ya da yeni bir yola kaydedin.
Tipli ayarlayıcılar değerleri dönüştürür mü?
Hiçbir dönüşüm uygulanmaz: her put_value_* ayarlayıcı yerel tipini depolar; display_string_value okuma sırasında görüntü metnini oluşturur.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Workbook.add_worksheet | Çalışma kitabına bir sayfa ekleyin |
Worksheet.set_name | Sayfayı yeniden adlandır |
Worksheet.get_cells_mut | Değiştirilebilir hücre koleksiyonu |
CellMut.put_value_string | Tiplenmiş dize ayarlayıcısı |
CellMut.put_formula_with_cached_value | Formül ve önbelleğe alınmış sonuç |
CellStyle | Yazı tipi, dolgu ve kenarlık biçimlendirmesi |
StyleFlag | Uygulanacak stil yönlerini seçer |
PageSetup | Yazdırma ve sayfa düzeni |
ListObject | Yapılandırılmış tablolar |