Giới thiệu
Aspose.Cells FOSS cho Rust mang họ Aspose.Cells FOSS vào hệ sinh thái Rust. Crate aspose-cells-foss-rust cho phép các ứng dụng Rust tạo sổ làm việc Excel XLSX từ đầu, tải các tệp hiện có, chỉnh sửa nội dung và lưu kết quả — mà không cần cài đặt Microsoft Office, tự động hoá COM, hay runtime bên ngoài.
Crate này được cấp phép MIT và nhắm tới Rust edition 2021. Nó tuân theo các quy ước mà các nhà phát triển Rust mong đợi: các hàm khởi tạo như Workbook::new, xử lý lỗi dựa trên Result thông qua CellsError, và các accessor có thể thay đổi rõ ràng như get_worksheets_mut và get_cells_mut giúp quy tắc vay mượn (borrow) luôn minh bạch. Nếu bạn xây dựng các dịch vụ backend, công cụ CLI, hoặc các pipeline dữ liệu cần tạo hoặc tiêu thụ bảng tính, thư viện này cung cấp cho bạn cách thực hiện một cách native.
Phần này đã được xem xét dựa trên mô hình nguồn hiện tại cho hành vi sản phẩm mới nhất và phạm vi API.
Aspose.Cells FOSS đã có sẵn cho .NET, C++, Java, Python, và TypeScript; crate Rust gia nhập họ với cùng mục tiêu: hỗ trợ XLSX trung thực, có thể kiểm chứng dưới giấy phép tự do.
Các thành phần bao gồm
Sổ làm việc, Trang tính và Giá trị ô có kiểu dữ liệu
Một Workbook bắt đầu với một worksheet và có thể mở rộng bằng add_worksheet. Các ô chấp nhận các giá trị có kiểu — chuỗi, số nguyên, boolean, số thập phân và ngày-giờ — thông qua các setter chuyên dụng, vì vậy không cần các chuyển đổi dạng 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")?;
Công thức với Kết quả đã lưu trong bộ nhớ đệm
Các công thức được ghi cùng với một giá trị đã lưu trong bộ nhớ đệm, vì vậy tệp đã lưu mở trong Excel sẽ hiển thị kết quả đúng ngay lập tức — không cần lần tính lại nào:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Biểu đồ được gắn vào các Dải dữ liệu
Các loại biểu đồ cột, đường và các loại khác từ enum ChartType có thể được gắn vào phạm vi ô trên một worksheet, và hình học của biểu đồ có thể được đọc lại từ các tệp đã tải:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
Định dạng, Cài đặt Trang và Cấu trúc
Định dạng ô được truyền qua CellStyle với Font, Fill và Borders, áp dụng một cách chọn lọc bằng StyleFlag. PageSetup điều khiển kích thước giấy và hướng in, FreezePane giữ các hàng tiêu đề luôn hiển thị, và các bảng có cấu trúc xuất hiện qua ListObject với TableStyleType.
Xác thực, Định dạng Có Điều Kiện và Bộ lọc
Các tính năng chất lượng dữ liệu là một phần của giao diện cốt lõi: các quy tắc Validation với OperatorType, định dạng có điều kiện qua FormatCondition, bộ lọc tự động thông qua AutoFilter, các tên đã định nghĩa qua DefinedName, và bảo vệ workbook hoặc worksheet thông qua WorkbookProtection và WorksheetProtection.
Tải dữ liệu phòng thủ với chẩn đoán
Các tệp XLSX thực tế không phải lúc nào cũng đúng cấu trúc. LoadOptions cung cấp các cờ sửa chữa, và LoadDiagnostics báo cáo những gì bộ tải gặp phải:
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()
);
Bắt đầu nhanh
Thêm crate vào Cargo.toml của bạn dưới dạng phụ thuộc git (crate chưa được xuất bản trên crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Sau đó tạo, lưu và tải lại sổ làm việc đầu tiên của bạn:
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(())
}
Định dạng được hỗ trợ
| Định dạng | Tiện ích mở rộng | Đọc | Ghi |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
XLSX là trọng tâm của bản phát hành hiện tại: đọc và ghi vòng lặp đầy đủ thông qua Workbook::load_xlsx và Workbook::save, với các enum LoadFormat và SaveFormat điều khiển việc chọn định dạng một cách rõ ràng.
Mã nguồn mở & Bản quyền
Aspose.Cells FOSS cho Rust được cấp phép MIT. Mã nguồn đầy đủ có sẵn trên GitHub, và giấy phép cho phép sử dụng thương mại, sửa đổi và phân phối lại.