Pendahuluan
Aspose.Cells FOSS untuk Rust memperkenalkan keluarga Aspose.Cells FOSS ke ekosistem Rust. Crate aspose-cells-foss-rust memungkinkan aplikasi Rust membuat workbook Excel XLSX dari awal, memuat file yang ada, mengubah isinya, dan menyimpan hasilnya — tanpa instalasi Microsoft Office, otomatisasi COM, atau runtime eksternal terlibat.
Crate ini berlisensi MIT dan menargetkan Rust edition 2021. Ia mengikuti konvensi yang diharapkan oleh pengembang Rust: konstruktor seperti Workbook::new, penanganan error berbasis Result melalui CellsError, dan accessor mutable eksplisit seperti get_worksheets_mut dan get_cells_mut yang menjaga aturan peminjaman tetap jelas. Jika Anda membangun layanan backend, alat CLI, atau pipeline data yang perlu menghasilkan atau mengonsumsi spreadsheet, perpustakaan ini memberi Anda cara native untuk melakukannya.
Bagian ini telah ditinjau terhadap model sumber saat ini untuk perilaku produk terbaru dan cakupan API.
Aspose.Cells FOSS sudah tersedia untuk .NET, C++, Java, Python, dan TypeScript; paket Rust bergabung dengan keluarga dengan fokus yang sama: dukungan XLSX yang jujur dan dapat diverifikasi di bawah lisensi permisif.
Apa yang Termasuk
Buku Kerja, Lembar Kerja, dan Nilai Sel Bertipe
Workbook dimulai dengan satu worksheet dan berkembang melalui add_worksheet. Sel menerima nilai bertipe — string, integer, boolean, desimal, dan date-time — melalui setter khusus, sehingga tidak diperlukan konversi berbasis string.:
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")?;
Formula dengan Hasil Tersimpan
Formula ditulis bersama dengan nilai yang disimpan, sehingga file yang disimpan terbuka di Excel dengan hasil yang tepat secara langsung — tidak diperlukan proses perhitungan ulang:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Diagram Berlabuh pada Rentang Data
Tipe diagram kolom, garis, dan tipe diagram lainnya dari enum ChartType dapat dipasang pada rentang sel di worksheet, dan geometri diagram dapat dibaca kembali dari file yang dimuat:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
Gaya, Penyiapan Halaman, dan Struktur
Pemformatan sel mengalir melalui CellStyle dengan Font, Fill, dan Borders, diterapkan secara selektif dengan StyleFlag. PageSetup mengatur ukuran kertas dan orientasi untuk pencetakan, FreezePane menjaga baris header tetap terlihat, dan tabel terstruktur tersedia melalui ListObject dengan TableStyleType.
Validasi, Pemformatan Bersyarat, dan Filter
Fitur kualitas data merupakan bagian dari inti: aturan Validation dengan OperatorType, pemformatan kondisional melalui FormatCondition, auto-filter melalui AutoFilter, nama yang didefinisikan melalui DefinedName, serta perlindungan workbook atau worksheet melalui WorkbookProtection dan WorksheetProtection.
Pemuat Defensif dengan Diagnostik
File XLSX dunia nyata tidak selalu terbentuk dengan baik. LoadOptions mengekspos flag perbaikan, dan LoadDiagnostics melaporkan apa yang ditemui oleh loader:
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()
);
Mulai Cepat
Tambahkan crate ke Cargo.toml Anda sebagai dependensi git (crate belum dipublikasikan di crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Kemudian buat, simpan, dan muat ulang buku kerja pertama Anda:
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(())
}
Format yang Didukung
| Format | Ekstensi | Baca | Tulis |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
XLSX adalah fokus rilis saat ini: pembacaan dan penulisan siklus penuh melalui Workbook::load_xlsx dan Workbook::save, dengan enum LoadFormat dan SaveFormat yang mengatur pemilihan format secara eksplisit.
Sumber Terbuka & Lisensi
Aspose.Cells FOSS untuk Rust dilisensikan MIT. Kode sumber lengkap tersedia di GitHub, dan lisensi tersebut memperbolehkan penggunaan komersial, modifikasi, dan redistribusi.