מבוא
ניהול גיליונות אלקטרוניים הוא הליבה של חבילת aspose-cells-foss-rust: האובייקטים שמדמים חוברת עבודה, הגיליונות שלה והתאים שבהם, והפעולות שהופכות נתוני Rust לקבצי XLSX ניתנים להצגה. פוסט זה מלווה את השטח הזה — מהקמת גיליונות וכתיבת ערכים מסוגים שונים ועד לעיצוב, פריסת דף, והתכונות המבניות שהופכות חוברות עבודה לשימושיות: הערות, קישורים, טבלאות ושמות מוגדרים.
כל מה שמופיע כאן הוא חלק מהחבילה בקוד פתוח, ברישיון MIT. אין צורך בהתקנת Microsoft Office בשום שלב; הספרייה קוראת וכותבת את פורמט חבילות XLSX ישירות.
סעיף זה נבדק אל מול מודל המקור הנוכחי עבור ההתנהגות העדכנית של המוצר וכיסוי API.
תכונות מרכזיות
גיליונות עבודה ואוספי תאים
גיליונות ניהול נעשים דרך אוספי הגיליונות של חוברת העבודה. גיליונות נגישים לפי אינדקס או שם, משנים שם בעזרת set_name, והתאים שלהם נגישים דרך get_cells (קריאה) או get_cells_mut (כתיבה):
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
ערכים מסוג לפי שם או אינדקס
תאים מקבלים מחרוזות, שלמים, בוליאנים, מספרים עשרוניים ותאריכים-שעות דרך setters מסוגיים. ניתן לגשת לתאים בסגנון A1 (get("B3")) או מספרית (get_by_index(row, column)), מה שמתאים לפריסות שנוצרות אוטומטית:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
נוסחאות עם ערכים במטמון
put_formula_with_cached_value שומר את טקסט הנוסחה יחד עם הערך ש-Excel צריך להציג לפני החישוב הראשון — חשוב כאשר הקובץ נצרך על ידי כלים אחרים שקוראים תוצאות שמורות:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
עיצוב ופריסת דף
CellStyle מכיל Font, Fill ו-Borders; StyleFlag בוחר אילו היבטי סגנון מתעדכנים. NumberFormat שולט בתצוגת הערך, ו-PageSetup מנהל את PaperSizeType ו-PageOrientationType להדפסה. FreezePane ו-VisibilityType של שורות/עמודות משמרים ניווט בגיליונות גדולים.
הערות, קישורים ושמות
תהליכי סקירת הממשק והניווט מכוסים על-ידי Comment ו-CommentCollection, Hyperlink עם HyperlinkCollection, ו-DefinedName עם DefinedNameCollection עבור טווחים בשם.
טבלאות מובנות ומסננים
ListObject ממיר טווח לטבלה מובנית עם עיצוב TableStyleType ושורות TotalsCalculation; AutoFilter מוסיף סינון עם תנאי FilterColumn ו-FilterOperatorType.
התחלה מהירה
הוסף את החבילה לקובץ Cargo.toml שלך כתלות git (החבילה עדיין לא פורסמה ב-crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }הפעלה מינימלית של ניהול גיליון-אלקטרוני — יצירה, כתיבה, שמירה, טעינה מחדש:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Item")?;
cells.get("B1")?.put_value_string("Quantity")?;
cells.get("A2")?.put_value_string("Apples")?;
cells.get("B2")?.put_value_i32(12)?;
}
workbook.save("inventory.xlsx")?;
let loaded = Workbook::load_xlsx("inventory.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A2 = {}", cells.get("A2")?.display_string_value());
Ok(())
}
פורמטים נתמכים
| פורמט | הרחבה | קריאה | כתיבה |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
ההטענה מקבלת דגלי תיקון של LoadOptions (try_repair_package, try_repair_xml) עם LoadDiagnostics מובנה; השמירה עוברת דרך save, save_xlsx, או save_with_format עם ה-enum SaveFormat.
קוד פתוח והרשאות
Aspose.Cells FOSS עבור Rust מוגדר ברישיון MIT. קוד המקור מתארח בGitHub; שימוש מסחרי, שינוי והפצה מותרים.