Aspose.Cells FOSS for Rust 是一个用于在 Rust 应用程序中处理 Excel XLSX 电子表格的开源库。它为系统程序员提供了一种本地、内存安全的方式,可从头创建工作簿、加载现有 XLSX 文件、修改其内容并保存结果——无需 Microsoft Office、COM 自动化或任何外部运行时。
该 crate 对完整的电子表格对象树建模:Workbook、Worksheet 以及带有类型化值设置器的单元格集合(put_value_string、put_value_i32、put_value_bool、put_value_decimal),通过 put_formula_with_cached_value 实现带缓存值的公式,图表(Chart、ChartType),条件格式(FormatCondition),数据验证(Validation),自动筛选(AutoFilter),单元格样式(CellStyle、Font、Fill、Borders),页面设置(PageSetup),图片、形状、批注、超链接、表格(ListObject),微型图表(SparklineGroup),自定义名称,以及工作簿/工作表保护。
Aspose.Cells FOSS for Rust 使用 MIT 许可证,目标为 Rust 2021 版。它可通过 GitHub 仓库作为标准 Cargo 依赖进行安装——请参阅安装指南获取准确的 Cargo.toml 条目。错误通过常规的 Result 类型(CellsError)呈现,XLSX 加载提供带结构化诊断信息(LoadDiagnostics)的修复选项(LoadOptions)。企业产品系列请参阅 Aspose.Cells — Enterprise Product Family。
Workbook::new 创建空工作簿,或使用 Workbook::load_xlsx 加载现有文件add_worksheet、worksheet 以及可变工作表集合来添加和访问工作表save、save_xlsx 或明确格式的 save_with_format 将文件保存到磁盘put_value_string, put_value_i32, put_value_bool, put_value_decimal, put_value_date_timeput_formula_with_cached_value 写入带缓存结果的公式display_string_value 和 value_type 读取返回的值get、get_by_index)定位单元格CellStyle 使用 Font、Fill 和 Borders 进行单元格样式设置StyleFlag 应用针对性的样式更新NumberFormat 进行数字格式化PageSetup(纸张大小、方向、边距)进行打印和页面布局FreezePane 冻结窗格;控制行/列的可见性ChartType 在工作表的图表集合中添加柱形图、折线图等其他图表类型Chart, ChartCollection)Picture 嵌入图像,使用 Shape 绘制形状SparklineGroup 紧凑显示单元格内趋势FormatCondition 实现的条件格式规则Validation(配合 OperatorType)实现的数据验证规则AutoFilter 实现的自动筛选;通过 ListObject 实现的结构化表格DefinedName 定义的名称;通过 WorkbookProtection 和 WorksheetProtection 实现的保护LoadOptions 修复标志和 LoadDiagnostics 实现的稳健 XLSX 加载创建工作簿,写入已键入的值和带有缓存结果的公式,保存为 XLSX 并重新加载它:
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("C1")?.put_value_bool(true)?;
cells.get("D1")?.put_value_decimal(12.5)?;
cells.get("F1")?.put_value_i32(10)?;
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(())
}
使用 LoadOptions 修复标志以防御性地打开工作簿,并检查结构化的加载诊断信息:
let options = LoadOptions {
try_repair_package: true,
try_repair_xml: true,
..LoadOptions::default()
};
let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("Saved: {}", valid_path.display());
println!(
"Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
loaded.get_worksheets().count(),
loaded.get_load_diagnostics().issues().len()
);
填充数据范围,然后将柱状图和折线图锚定到该范围:
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
charts.add(
ChartType::Line,
"Charts!$C$1:$C$13".to_string(),
0,
9,
18,
13,
)?;
该 crate 在 MIT License 下发布;完整文本作为 LICENSE.txt 随仓库一起提供。
是的。MIT 许可证允许商业使用、修改和再分发,前提是保留版权和许可证声明。
在你的 Cargo.toml 中添加 aspose-cells-foss-rust,作为来自 GitHub 仓库的 git 依赖。
XLSX,支持通过 Workbook::load_xlsx 和 save 完整的往返读取和写入。当前版本不支持其他电子表格格式。
不。该库直接读取和写入 XLSX 包格式——不需要 Office 安装、COM 自动化或外部运行时。