עבודה עם ניהול גיליונות אלקטרוניים
עבודה עם ניהול גיליונות אלקטרוניים
ניהול הגיליון האלקטרוני מכסה את המשטח היומיומי של האובייקט בחבילה: גיליונות עבודה, אוספי תאים, ערכים טיפוסיים, נוסחאות, עיצוב, והתכונות המבניות שהופכות חוברת עבודה לשימושית. נקודת הכניסה היא תמיד Workbook.
Worksheets
גיליונות מנוהלים דרך אוספי הגיליונות של חוברת העבודה — גישה לקריאה באמצעות get_worksheets, שינוי באמצעות get_worksheets_mut. גליונות נגישים לפי אינדקס (get(0)) או שם (get_by_name), משנים שם עם set_name, ומתווספים עם add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}גישה לתאים וערכים טיפוסיים
תאים נגישים בסגנון A1 או מספרית. get_by_index(row, column) מתאים לפריסות שנוצרו:
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}"))?;
}בקריאה חזרה, display_string_value מחזיר את הטקסט המוצג ו-value_type מדווח על הסוג השמור.
נוסחאות עם תוצאות שמורות במטמון
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;הערך השמור במטמון הוא מה שמציג Excel לפני החישוב הראשון שלו — ספק אותו כך שמקבלי הקובץ יראו תוצאות נכונות מיד.
Styling
CellStyle מאגד את Font, Fill, ו-Borders; StyleFlag שולט באילו היבטים של העיצוב עדכון חל, כך שהעיצוב הקיים נשמר במקומות בהם אינך משכתב אותו. NumberFormat שולט באופן שבו ערכים מוצגים.
הגדרת עמוד וניווט
PageSetup מנהל את פריסת ההדפסה: PaperSizeType, PageOrientationType, והשוליים. FreezePane שומר על שורות הכותרת גלויות בזמן גלילה, והצגת שורות ועמודות נעזרת ב-VisibilityType.
מבנה: טבלאות, שמות, הערות, קישורים
ListObjectהופך טווח לטבלה מובנית עם עיצובTableStyleTypeושורות סיכוםTotalsCalculation.DefinedNameו-DefinedNameCollectionמנהלים טווחים בשם.Comment/CommentCollectionו-Hyperlink/HyperlinkCollectionמכסים הערה וניווט.
טיפים ושיטות עבודה מומלצות
- שמור על השאלות המשתנות (
get_worksheets_mut,get_cells_mut) בתוך בלוק תחום; שמור את חוברת העבודה לאחר סגירת הבלוק. - השתמש ב-
get_by_indexללולאות ולפריסות שנוצרו; שמות A1 למיקומים קבועים. - החל סגנונות עם
StyleFlagכדי שהעיצוב הלא קשור יישאר ללא שינוי. - שם טווחים חשובים עם
DefinedNameבמקום לקודד כתובות באופן קבוע.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
| שגיאת השאלת שמירת חוברת העבודה | ההשאלה של גיליון עבודה בר-עריכה עדיין קיימת | סגור את בלוק ההיקף לפני קריאה לsave |
| הנוסחה מציגה 0 ב-Excel | לא סופק ערך במטמון | השתמש ב-put_formula_with_cached_value עם התוצאה הצפויה |
| הגיליון לא נמצא | השם אינו תואם | כתובת לפי אינדקס או בדוק את האיות של set_name |
FAQ
איך מוסיפים גיליון שני?
קראו ל-add_worksheet על חוברת העבודה, ואז קבלו אותה דרך אוסף הגיליונות לפי אינדקס או שם.
האם אפשר לקרוא ולכתוב באותו מעבר?
כן — טען עם Workbook::load_xlsx, שנה דרך get_worksheets_mut, ו-save אל אותו הנתיב או לנתיב חדש.
האם ממלאים מסווגים ממירים ערכים?
אין המרות: כל ממלא put_value_* שומר את הסוג הטבעי שלו; display_string_value מציג את טקסט ההצגה בקריאה.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
Workbook.add_worksheet | הוסף גיליון לחוברת העבודה |
Worksheet.set_name | שנה שם גיליון |
Worksheet.get_cells_mut | אוסף תאים ניתן לשינוי |
CellMut.put_value_string | מתאם קביעת מחרוזת מטיפוס |
CellMut.put_formula_with_cached_value | נוסחה + תוצאה במטמון |
CellStyle | עיצוב גופן, מילוי וקו גבול |
StyleFlag | בוחר אילו היבטי סגנון חלים |
PageSetup | הדפסה ופריסת דף |
ListObject | טבלאות מובנות |