معرفی

Aspose.Cells FOSS برای Rust خانواده Aspose.Cells FOSS را به اکوسیستم Rust می‌آورد. crate aspose-cells-foss-rust به برنامه‌های Rust امکان می‌دهد تا کتاب‌کارهای Excel XLSX را از ابتدا ایجاد کنند، فایل‌های موجود را بارگذاری، محتواهایشان را تغییر دهند و نتیجه را ذخیره کنند — بدون نیاز به نصب Microsoft Office، خودکارسازی COM یا ران‌تایم خارجی.

این crate تحت مجوز MIT است و هدف‌گذاری آن نسخه 2021 زبان Rust می‌باشد. مطابق با قراردادهایی است که توسعه‌دهندگان Rust انتظار دارند: سازندگانی مانند Workbook::new، مدیریت خطا بر پایه Result از طریق CellsError، و accessorهای قابل تغییر صریح مانند get_worksheets_mut و get_cells_mut که قوانین قرض‌گیری را واضح نگه می‌دارند. اگر سرویس‌های بک‌اند، ابزارهای CLI یا خطوط داده‌ای می‌سازید که نیاز به تولید یا مصرف صفحات گسترده دارند، این کتابخانه راه‌حل بومی برای انجام این کار را فراهم می‌کند.

این بخش بر اساس مدل منبع فعلی برای آخرین رفتار محصول و پوشش API مرور شده است.

Aspose.Cells FOSS قبلاً برای .NET، C++، Java، Python و TypeScript در دسترس است؛ crate Rust به این خانواده می‌پیوندد با همان تمرکز: پشتیبانی صادقانه و قابل‌تایید XLSX تحت یک مجوز آزاد.


چه مواردی گنجانده شده است

کتاب‌کارها، ورق‌های کاری و مقادیر سلول‌های نوع‌دار

Workbook با یک worksheet شروع می‌شود و با استفاده از add_worksheet گسترش می‌یابد. سلول‌ها مقادیر تایپ‌شده — رشته‌ها، اعداد صحیح، بولی‌ها، اعشار و تاریخ-زمان‌ها — را از طریق setterهای اختصاصی می‌پذیرند، بنابراین نیازی به تبدیل‌های رشته‌ای نیست:

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("Hello")?;
    cells.get("B1")?.put_value_i32(123)?;
    cells.get("C1")?.put_value_bool(true)?;
    cells.get("D1")?.put_value_decimal(12.5)?;
}
workbook.save("hello.xlsx")?;

فرمول‌ها با نتایج کش‌شده

فرمول‌ها همراه با یک مقدار کش‌شده نوشته می‌شوند، بنابراین فایل ذخیره‌شده بلافاصله در اکسل با نتایج صحیح باز می‌شود — نیازی به عبور محاسبه مجدد نیست:

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

نمودارها متکی بر بازه‌های داده‌ای

انواع نمودار ستون، خط و سایر انواع نمودار از enum ChartType می‌توانند به بازه‌های سلولی در یک worksheet متصل شوند و هندسه نمودار می‌تواند از فایل‌های بارگذاری‌شده خوانده شود:

let mut charts = sheet.get_charts();
charts.add(
    ChartType::Column,
    "Charts!$B$1:$B$13".to_string(),
    0,
    4,
    18,
    8,
)?;

استایل‌گذاری، تنظیمات صفحه و ساختار

قالب‌بندی سلول‌ها از طریق CellStyle با Font، Fill و Borders انجام می‌شود و به‌صورت انتخابی با StyleFlag اعمال می‌گردد. PageSetup اندازه و جهت صفحه برای چاپ را کنترل می‌کند، FreezePane ردیف‌های سرعنوان را قابل مشاهده نگه می‌دارد و جدول‌های ساختاریافته از طریق ListObject با TableStyleType ارائه می‌شوند.

اعتبارسنجی، قالب‌بندی شرطی و فیلترها

ویژگی‌های کیفیت داده بخشی از سطح هسته‌ای هستند: قوانین Validation با OperatorType، قالب‌بندی شرطی از طریق FormatCondition، فیلترهای خودکار با AutoFilter، نام‌های تعریف‌شده با DefinedName و حفاظت از workbook یا worksheet از طریق WorkbookProtection و WorksheetProtection.

بارگذاری دفاعی با تشخیص

فایل‌های XLSX دنیای واقعی همیشه به‌درستی قالب‌بندی نشده‌اند. LoadOptions پرچم‌های تعمیر را نمایش می‌دهد و LoadDiagnostics آنچه که بارگذار با آن مواجه شده است را گزارش می‌کند:

let options = LoadOptions {
    try_repair_package: true,
    try_repair_xml: true,
    ..LoadOptions::default()
};

let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
println!(
    "Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
    loaded.get_worksheets().count(),
    loaded.get_load_diagnostics().issues().len()
);

شروع سریع

crate را به‌عنوان وابستگی گیت به فایل Cargo.toml خود اضافه کنید (این crate هنوز در 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>> {
    // Create a new workbook (starts with one sheet, "Sheet1").
    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("Hello")?;
        cells.get("B1")?.put_value_i32(123)?;
        cells.get("G1")?
            .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
    }
    workbook.save("hello.xlsx")?;

    // Load it back.
    let loaded = Workbook::load_xlsx("hello.xlsx")?;
    let sheet = loaded.worksheet("Sheet1")?;
    let cells = sheet.get_cells();
    println!("A1 = {}", cells.get("A1")?.display_string_value());

    Ok(())
}

فرمت‌های پشتیبانی‌شده

قالب‌بندیپسوندخواندننوشتن
XLSX.xlsx

XLSX محور انتشار جاری است: خواندن و نوشتن کامل دورگرد از طریق Workbook::load_xlsx و Workbook::save، به‌همراه enumهای LoadFormat و SaveFormat که انتخاب صریح قالب را کنترل می‌کنند.


منبع باز و مجوزدهی

Aspose.Cells FOSS برای Rust تحت مجوز MIT است. کد منبع کامل در GitHub موجود است و این مجوز اجازه استفاده تجاری، تغییر و توزیع مجدد را می‌دهد.


شروع کار

منابع مرتبط