Skip to main content

Crate rxlsb

Crate rxlsb 

Source
Expand description

§rxlsb - 高性能XLSB文件读写库

rxlsb是一个纯Rust实现的Excel XLSB格式读写库,提供高性能的二进制Excel文件处理能力。

§核心特性

  • 高性能: 写入200K行/秒,读取2.3M行/秒,全面超过Java jxlsb
  • 零拷贝: 基于Bytes架构,最小化内存复制
  • 流式API: 支持批量写入、分页读取、流式处理
  • 模板填充: 支持基于模板的数据填充
  • 类型安全: Rust类型系统保证,无运行时错误

§快速开始

§写入XLSB文件

use rxlsb::{XlsbWriter, CellData};
use std::path::PathBuf;

let path = PathBuf::from("output.xlsb");
let mut writer = XlsbWriter::builder().path(&path).build().unwrap();

writer.write_batch("Sheet1", |row, col| {
    match col {
        0 => CellData::text(format!("Name-{}", row)),
        1 => CellData::number(row as f64),
        _ => CellData::blank(),
    }
}, 1000, 5).unwrap();

writer.close().unwrap();

§读取XLSB文件

use rxlsb::{XlsbReader, CellData};
use std::path::PathBuf;

let path = PathBuf::from("output.xlsb");
let mut reader = XlsbReader::builder().path(&path).build().unwrap();

// 流式读取
reader.for_each_row(0, |row_idx, cells| {
    println!("Row {}: {} cells", row_idx, cells.len());
}).unwrap();

// 分页读取
let rows = reader.read_rows(0, 0, 100).unwrap();
println!("Read {} rows", rows.len());

§性能对比

操作rxlsb (Rust)jxlsb (Java)提升
流式写201K/s137K/s+46%
分页写190K/s111K/s+71%
流式读2.3M/s1.95M/s+18%
分页读31K/s10K/s+210%

Structs§

SheetInfo
TemplateFiller
XlsbReader
XLSB文件读取器
XlsbWriter
XLSB文件写入器

Enums§

CellData
Excel单元格数据类型
CellError
Excel错误值类型
XlsbError

Type Aliases§

Result